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.


> 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."

Reply via email to