[ace-users] Help ! Porting ACE Proactor Aio application on Linux
shuston at riverace.com
Wed Mar 2 16:30:27 CST 2016
Thank you for the PROBLEM-REPORT-FORM.
I looked for a bit and found no new developments in Linux kernel aio socket support, so the situation has apparently not changed.
Your choices are:
1. Redesign your application to alternate reads and writes; some protocols won’t support this well, but if you can it’s the easiest way.
2. Change to using Reactor (particularly, ACE_Dev_Poll_Reactor) on Linux, at least.
3. Write something to emulate aio using reactive mechanisms. There was an effort that did this in ACE quite a few years ago – maybe you can get your hands on that and see if it could work for you.
From: ace-users [mailto:ace-users-bounces at list.isis.vanderbilt.edu] On Behalf Of h w
Sent: Tuesday, March 01, 2016 9:45 AM
To: ace-users at list.isis.vanderbilt.edu
Subject: [ace-users] Help ! Porting ACE Proactor Aio application on Linux
ACE VERSION: 6.3.0
HOST MACHINE and OPERATING SYSTEM:
Centos 6.7 and Linux kernel 2.6.32-573.12.1.el6.i686
CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
no such file
AREA/CLASS/EXAMPLE AFFECTED: no
DOES THE PROBLEM AFFECT:
On Unix systems, did you run make realclean first? Yes, I did.
Using ACE Proactor AIO framework on network sockets to exchange messages between two or more endpoints on linux OS. It looked the message read or write blocked or in order.
I am porting an application into Linux which utilizes ACE proactor AIO framework for a network communication ( read/ write socket ). It works fine on Windows OS. However, on Linux, The application looked like exchange messages in order, for example, When I tried to send a message to the peer, I found that ACE_POSIX_AIOCB_Proactor did invoke aio_write() but the message did not get sent out util the peer sent a message out, and then got that previous message in. More worse, most time, when the connector estalished a connection and tried to send the first message, the system got locked up because a read operation probably be put before write operation for listening any incoming messages.
I searched the issue and found the similar issue report in the link but it was several years age: https://stevehuston.wordpress.com/2008/11/25/when-is-it-ok-to-use-ace-proactor-on-linux/
Is it still the limitation on Linux? Is there any way to get the ACE Proactor AIO work for network communication ( exchange message via socket with full duplex) now? Any help would be greatly appreciated
This email has been sent from a virus-free computer protected by Avast.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ace-users