Re: [asio-users] ACE_WFMO_Reactor
Brought to you by:
chris_kohlhoff
From: Marat A. <ab...@ma...> - 2008-10-17 06:31:51
|
Dear Cliff, 1) I was watching at ACE from the beginning of my project. But it's rather old and very heavy (using a lot of macros, wrapping all together - threads, mutexes, date/time arithmetic). Boost + Boost::asio = almost ACE 2) I agree: ACE support more platforms - but I doubted if its implementation (old 8(( and based on virtual calls only) is rather efficient (Asio is more simple then ACE, I don't know exactly but I can't find at ACE strands and custom handler allocation - or ACE don't need this at all?) 3) Asio supports error codes and exceptions - ACE supports error codes only, ACE is built on raw pointers - this is a large door ("welcome") for mistakes (who will delete an object and how? - this always need some explanation - smart pointers - don't) 4) Asio supports only proactor model (and this is enough) - ACE support reactor and proactor with static/dynamic select of the model 5) At Asio reactors are wrapped by proactive model - read documentation. 6) "Time and money" - yeah, ACE has a lot of contributors and financial support from world's largest companies. I think Asio will have the same, but not so quickly. 7) I want to implement the WFMO-Reactor but I haven't time for this... (today) 8) WFMO-Reactor should be used internally in Asio only if there are no completion ports (Win 9x & WinCE) or their support are disabled by macros 9) I am not expecting Chris "to do all the work" - he had already implement select-reactor and Linux reactors - so the implementation of WFMO-Reactor will not be so hard - but it'll make Asio more popular for WinCE (for Win 9x, I think, WFMO-Reactor will be more efficient than the select-based) Best regards, Marat. -----Original Message----- From: Green, Cliff [mailto:cli...@bo...] Sent: Friday, October 17, 2008 1:25 AM To: asi...@li... Subject: Re: [asio-users] ACE_WFMO_Reactor Marat, I'm not trying to speak for Chris (in case he has a WinCE port already in progress, heh), but maybe you could contribute a Windows reactive port for WinCE and Win 9x. I wouldn't be surprised if the code changes are not that great and the Windows reactive code base might be (mostly) common across all Windows platforms. However, putting together a build and test environment and verifying correct operation of everything is a significant task, both in terms of time and money. There's also target platform decisions that would have to be made - would Asio support both a select / reactive as well as WMFO engine for Windows platforms that support both? ACE answers this by providing both reactive and proactive classes and letting the application decide at either compile or runtime (or both). Personally I think providing this much flexibility in the API would be a mistake for Asio (the Asio API, and whatever makes it into a C++ standard TR, should be minimal and simple). So if support for both would be provided in Windows, then some sort of Asio build option would be needed to select between the implementations. Or Asio could provide the reactive implementation only for WinCE and Win 9.x (which is what I would choose, if I was doing the developing). (Is there a business opportunity lurking in here? Similar to Riverace or OCI?) >>All this can provide boost::asio. Boost::asio is almost crossplatform. Asio is already crossplatform. The core API is generic and portable, and is supported on a fairly wide range of common platforms. It may not be all of the platforms you're interested in, so you'll need to help. Personally I've developed for VxWorks, LynxOS, Solaris, Linux, Windows (NT), HP-UX, and a couple of esoteric embedded platforms in the last five years (ACE was supported on all of them). I'd love to have Asio on all of them, but I can't expect Chris to do all the work. If Asio officially becomes part of TR2, I would expect compiler vendors (or std library vendors) to start implementing it efficiently and completely for their chosen platforms, but that's probably some years in the future. >>I think it'll be very good for C++ to have crossplatform asynchronous IO at C++ TR2. I agree. Cliff ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ asio-users mailing list asi...@li... https://lists.sourceforge.net/lists/listinfo/asio-users |