본문 바로가기

Coding Note

간단한 epoll thread-pooling server

epoll과 thread-pooling을 이용해 간단한 서버 코드를 짜봤다.

work와 packet을 구분해야 했지만, 그냥 개념만 익히는용도이니 넘어가자.

client list를 관리하기 위해서 semaphore를 이용해 read와 write에 대한 락을 구현하였다. read에는 제한이 없고, write요청시 모든 read가 블럭되며 write를 마친 후 대기하던 read요청이 다시 시작된다.

마찬가지로 work queue 또한 semaphore를 이용해서 대기큐로 구현하였다.

세마포 사실 잘 안써봐서 이렇게 하는게 문제될 소지가 없는지는 확실하지 않다. (개인적으론 꽤 괜찮다고 생각중이다..)

 

서버 코드

 

아래는 테스트용 클라이언트 및 패킷 헤더파일

 

'Coding Note' 카테고리의 다른 글

pymongo json  (0) 2014.02.10
Flask install & test  (0) 2014.01.23
Tetrahedron circumsphere from 4 points  (0) 2013.10.28
A point within the tetrahedron  (0) 2013.10.23
matrix determinant  (0) 2013.10.23