본문 바로가기

zl3

bad_descriptor 오류와 PeerManager PeerManager는 내부에 풀을 가지고 있어서 CreatePeer를 호출할 때 released_peer_pool큐에 데이터가 있을땐 저곳에서, 없으면 새로운 할당(new)을 하였는데 released_peer_pool에 저장된 메모리를 꺼낼 때 생성자를 호출하지 않는 실수를 하여 bad_descriptor 오류가 발생했었다. 2014. 10. 31.
Acceptor 클래스 accept 소켓을 받고 싶은 문제 std::future와 std::async를 사용하는 것을 고려 함수는 get_accepted_socket 대충 코드는 return std::future accepted_socket = std::async([this]()->socket_t{ while(!exist_accepted_socket()) {} return accepted_socket_queue.front();} 이런식? 알아봐야 할 것 코루틴 => 난 아직 코루틴의 개념과 그 활용 방법조차 잘 모름 이에 대해서 사용할 수 있을지 알아봐야 함(boost에 코루틴을 지원하는 라이브러리가 있음) 2014. 7. 11.
zl/memory_stream 네이밍 memory_stream 일반적으로, 메모리 조작을 돕는 클래스는 memory stream란 이름을 많이 사용한다.스트림의 정의는? http://terms.naver.com/entry.nhn?docId=838349&cid=209&categoryId=209 put 처음엔 push로 네이밍을 했었는데, put은 어떤 공간에 어떤걸 딱딱 맞게 넣는 느낌인 반면 push는 어거지로 데이터를 밀어넣는단 느낌이라 put을 선택했다. 근데 구현부를 생각하면 push가 어울리기도 한 듯 -_-; 삽입 데이터의 사이즈 체크를 안 하고, 오버플로우를 유발할 수 있으니까...하지만, 문제가 언제든 있을 수 있는 부분이 멀쩡하게 잘 돌아가는 것처럼 보이게 하는 것보단, 메모리 오버플로우 관련 에러를 미리 알 수 있는 것이 나.. 2014. 7. 2.