+1 on ASIO, and I would recommend replacing the threaded model with boost too: it's more stable (on windows), it plays really well with ASIO and it's very close to the standard of C++0x.
Here at last.fm we are working on a prototype, but this should not stop a coordinated effort to build something that (for instance) does not require using boost threads. Cheers, -- Norman > -----Original Message----- > From: Frey, Erik > Sent: 31 January 2009 01:25 > To: [email protected] > Subject: Re: Windows library port > > Hi Rush, > > Porting to ASIO is a great idea - I think you'll find that using it > requires a bit of finagling, as TSocket was designed for blocking > interaction. ASIO has blocking reads on sockets, but things get a bit > more complicated when mixing blocking reads with timeouts > (read/write/connect). It's doable, but you might need to enqueue reads > to the io_service then wait on a condition. > > I began a port, but haven't had time to finish it. If you post > something publicly I'd be happy to contribute. > > David, > >> > >> > >> 2/ The concurrency code was designed to be implementation-neutral, so > >> it should be possible to swap out pthreads without any changes to > >> existing > >> code. If you need to make changes to an existing concurrency class, > >> please > >> bring it up with this list as early as possible. > According to the original whitepaper, I understand when you guys first > wrote thrift there wasn't a suitable concurrency library. With newer > versions of boost, I'm pretty sure there's a direct mapping from every > one of your concurrency class features to Boost.Thread. Nowadays, > Boost.Thread is full-featured, cross-platform, and really, really > bullet-proof. Do you think it's still necessary to keep the concurrency > stuff around? This seems like a solved problem. > > I understand the implementation-neutral argument, but I don't know of > any other thrift implementation besides posix threads. Do you Facebook > guys have one? The one argument for custom concurrency might be C10k > stuff, but for that we've got TNonBlockingServer (which will convert to > ASIO beautifully!), right? > > Erik
