Hi,
Hello Patrick, > > > But if I signal the main thread from the callback, to free the > > resources, the callback might be switched out directly after this > > signal, and the main thread might free the resources before the > > callback ended and the axis framework used them. > > Yes, this is a pretty serious limitation. I have been trying to find > out if Axis2/C provides a way to either know the thread id of the > communication threads created internally or to be notified exactly when > the threads exit. As you suggest, this is treated as an implementation > detail and we are expected to code without a precise notification of > when these threads finishes their tasks. > > It sounds like you would like to free resources on a per-call basis. Is > that right? I'm quite new to the Axis2/C architecture so perhaps a more > experienced person could suggest a mechanism that would fit into the > existing methodology and provide this extra feature. My impression is > that the design philosophy so far is to free resources after all calls > are completed. > Current implementation does not provide a way to free resources on a per-call basis. I agree with Patrick, we should provide a callback to free the resources. Regards, Shankar > > > > With the fd_set in winsock and the select() function, you can wait > > at a maximum of 64 (current implementation) sockets at once. > > With I/O Completion Ports you can use one thread for an infinite > > number of ports... But I think they don't fit well in the modular > > (transportation) design of axis > > That's very interesting. I'm curious as to more of the details of how > this functions... If you have one thread waiting on 12 sockets and want > to make a new call, can this thread begin the next call, or does a > second thread open the socket and pass the job of waiting on it to the > first thread? > > I think we would all agree that your use case would benefit from adding > this capability to Axis2/C. You mention a potential conflict with the > modular design of Axis; there is also the idea that making such a > powerful feature accessible to the average programmer using Axis could > be a challenge. Maybe the solution would be to add a new communication > mode instead of changing all asynchronous communication to > one-thread-multi-socket. I wish I understood the Axis2/C architecture > more fully because this would be an interesting area to contribute. > > The pleasure is all mine in this conversation. So far I am learning > more about winsock :) > _____ > > "Ce message est confidentiel, a l'usage exclusif du destinataire > ci-dessus et son contenu ne represente en aucun cas un engagement de la > part de AXA, sauf en cas de stipulation expresse et par ecrit de la part > de AXA. Toute publication, utilisation ou diffusion, meme partielle, > doit etre autorisee prealablement. Si vous n'etes pas destinataire de ce > message, merci d'en avertir immediatement l'expediteur." > > "This e-mail message is confidential, for the exclusive use of the > addressee and its contents shall not constitute a commitment by AXA, > except as otherwise specifically provided in writing by AXA. Any > unauthorized disclosure, use or dissemination, either whole or partial, > is prohibited. If you are not the intended recipient of the message, > please notify the sender immediately." > -- S.Uthaiyashankar Software Architect WSO2 Inc. http://wso2.com/ - "The Open Source SOA Company"