Re: WG: [ROOT] EINTR handled in TSocket ?

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Tue Jul 13 2004 - 12:42:56 MEST


Hi Hermann-Josef,

 I guess that with grepping you found also:

TTimer::SetInterruptSyscalls()
TUnixSystem::SigAlarmInterruptsSyscalls()

which allow you to use the ROOT signal handler and interrupt syscalls
using a a-sync timer.

Cheers, Fons.



On Tue, 2004-07-13 at 12:02, Mathes, Hermann-Josef wrote:
>  
> 
> Dear Rooters,
> 
>  
> 
> well, it seems you can forget my question. I grep’ed a bit more
> around…
> 
>  
> 
> SA_RESTART flag set on struct sigaction should solve the problem and I
> commented that definitely out in my call to sigaction() …
> 
> And in TUnixSystem::UnixSignal() it is done !
> 
>  
> 
> Sorry for bothering everybody here.
> 
>  
> 
> Cheers
> 
> Hermann-Josef
> 
>  
> 
>  
> 
> -----Ursprüngliche Nachricht-----
> Von: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch] Im Auftrag von Mathes,
> Hermann-Josef
> Gesendet: Dienstag, 13. Juli 2004 09:49
> An: roottalk@cern.ch
> Betreff: [ROOT] EINTR handled in TSocket ?
> 
>  
> 
>  
> 
> Dear Rooters,
> 
>  
> 
> I am in doubt that EINTR is handled properly in the TSocket class.
> There was a message from Fons a long time ago concerning this subject
> (http://root.cern.ch/cgi-bin/print_hit_bold.pl/root/roottalk/roottalk01/2317.html), but I could not find it in the code (TUnixSystem::UnixSend(), TUnixSystem::SendRaw(), TSocket::Send() and TSocket::SendRaw()).
> 
>  
> 
> I have checked it in the sources of 3.00, 3.02, 3.05/07 (the version
> our project uses) and the CVS HEAD version.
> 
>  
> 
> This is my code fragment and I am using the alarm() function to send
> periodically signals to my application:
> 
>      cout << "Sending event # " << header->GetEventNo() << endl;
> 
>  
> 
>       mess.Reset();
> 
>      mess.SetWhat( kMESS_OBJECT );
> 
>  
> 
>      mess.WriteObject( event );
> 
>  
> 
>      length = socket->Send( mess );
> 
>  
> 
>      if ( length <= 0 ) {
> 
>        cerr << "TSocket::Send() - length= " << length << endl;
> 
>         cerr << "TSystem::GetErrno()= " << gSystem->GetErrno() <<
> endl;
> 
>       }
> 
>  
> 
> This is the printout when the SIGALARM happens during/near the socket
> transaction:
> 
>  
> 
> Sending event # 11941
> 
> SigAlarmHandler() was called at 1089647658 !
> 
> SigAlarmHandler() was called at 1089647659 !
> 
> TSocket::Send() - length= -1
> 
> TSystem::GetErrno()= 4
> 
>  
> 
> I am overwriting the ROOT signal handler for SIGALARM through
> sigaction().
> 
>  
> 
> Could you please comment on it or help me to open my eyes … ? If it is
> not handled what is your suggestion ?
> 
>  
> 
> Thanks for any help, suggestions etc.
> 
> Regards
> 
> Hermann-Josef
> 
>  
> 
> 
> **************************************************************************
> 
> *   Visit my new homepage !!! new look & feel !!! new information
> !!!    *
> 
> *
> http://www-ik.fzk.de/~mathes/Welcome.htm                              
> *
> 
> **************************************************************************
> 
> *                                                                       *
> 
> * Dr. Hermann-Josef Mathes                              
> *
> 
> * KASCADE & AUGER
> Collaboration                                          *
> 
> * Forschungszentrum Karlsruhe                  Phone:    +49 7247
> 822429 *
> 
> * Institut für Kernphysik                        FAX:    +49 7247
> 824075 *
> 
> * POB
> 3640                                                              *
> 
> * D-76021 Karlsruhe/Germany         Mail:
> Hermann-josef.mathes@ik.fzk.de *
> 
> *                                                                       *
> 
> **************************************************************************
> 
>  
-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://www.rademakers.org/fons/      Fax:   +41 22 7679480



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET