Interop Madness

클라이언트 서버간 암호화  관련해서 개념 증명 + 몇 가지 성능 측정을 해야해서 몇 가지 언어 + 플랫폼에서 libsodium 1 을 호출해봤다. 그 와중에 겪은 일 정리. C++ 이쪽은 평범한 C/C++ 인터페이스니 문제 없이 끝. Python 위에서 구현한 부분을 클라이언트 쪽 구현을 (빨리) 만들어서 테스트하는 작업을 했다. 여기서부터 문제가 생기기 시작. Ubuntu 16.04 (xenial) 이 제공하는 […]

C++11: scoped_lock + “짜증나는 파싱”

boost::thread 에는 scoped_lock 이라는 블럭 스코프 동안 유효한 락이 있다. 멀티스레드 프로그래밍 하는 사람들은 유용하게 쓰고 있으리라 생각한다. 이 클래스를 엉터리로 쓰고 있는 다음 코드를 보자. main 에서 미리 mutex 에 락을 걸고 들어가기 때문에, scoped_lock 이 락을 걸지 못해서 데드락에 빠질 것처럼 보인다. #include <iostream> #include <boost/thread/mutex.hpp> struct foo { boost::mutex mutex_; void Run() […]