我在windows下vs2003下写的程序,用到了ACE_Proactor::instance(),在windows下没问题,到在redhat9下可以编译通过,但提示:
(31805 | 3086956224) ACE_POSIX_AIOCB_Proactor::Max Number of AIOs=1024
我在坛子上搜了一下,主流观点是linux的支持不够,这是个服务器端的程序,需处理大量连接,在linux下应该换成什么模型呢?epoll?
对平台不太熟悉,结果选用了不支持的模型。。。
There are bugs in some versions of Linux that cause problems for
various ACE Proactor implementations. You might try using a different
Proactor implementation to see if this helps. For example, rather
than using the ACE_POSIX_SIG_Proactor, try using the
ACE_POSIX_AIOCB_Proactor instead. Please see Chapter 8 of C++NPv2
<www.cs.wustl.edu/~schmidt/ACE/book2/> for more discussions of these
various Proactors.