RSPlib Discussions

Text archives Help


Re: [RSPlib-Discusssion] fail-over problems


Chronological Thread 
  • From: "Marjan Bozinovski" <marjanb AT cpk.auc.dk>
  • To: <rsplib-discussion AT sctp.de>
  • Subject: Re: [RSPlib-Discusssion] fail-over problems
  • Date: Mon Oct 21 15:57:46 2002
  • List-id: RSPlib Discussions <rsplib-discussion.sctp.de>

Hi Thomas,

Thank you very much for solving this problem! It took a lot of time, but
luckily it's solved. Now, I will try to do what you are suggesting and get
back with the outcome.

Best regards,
Marjan

----- Original Message -----
From: "Thomas Dreibholz"
<dreibh AT exp-math.uni-essen.de>
To: "Marjan Bozinovski"
<marjanb AT cpk.auc.dk>;

<rsplib-discussion AT sctp.de>
Cc: "Michael Tüxen"
<Michael.Tuexen AT icn.siemens.de>;
"Michael Tüxen"
<Michael.Tuexen AT micmac.franken.de>
Sent: Monday, October 21, 2002 12:46 PM
Subject: Re: [RSPlib-Discusssion] fail-over problems


> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi!
>
> The cause of your problems have been found: Your program creates new
> processes using fork() in line 518. This cannot work with the socket API
and
> it will never work. But you can use threads (see manual page of
> pthread_create) to provide a similar functionality.
>
> The sctplib's functionality is provided within an event loop. The user has
to
> continously call sctp_eventLoop() for the sctplib to be able to handle
events
> like timers and incoming data. This makes debugging easier but programming
of
> applications more complicated since you cannot simply do e.g. blocking
> reads or writes. Using kernel-based protocols, the protocol's background
> execution is hidden in the kernel. The socket API for the sctplib provides
> this functionality by a second thread that runs the sctplib's event loop
in
> background. It uses mutexes to prevent both threads from causing
> interferences.
> Using fork(), you simply copy the whole process. This also includes kernel
> file handles but not the socket API ones. Furthermore, all threads are
> duplicated, including the SCTP instance and mutexes. Therefore, this
totally
> wrecks the socket API and sctplib management structures.
>
>
> Since you are programming in C++, you can simply use my class Thread and
the
> classes Synchronizable and Condition to implement multiple threads. Just
> inherit the class Thread and implement the method go(). Then, calling
start()
> starts your new thread.
>
>
> Best regards
> - --
> =======================================================================
> Dipl.-Inform. Thomas Dreibholz
>
> University of Essen, Room ES210
> Inst. for Experimental Mathematics Ellernstraße 29
> Computer Networking Technology Group D-45326 Essen/Germany
> - -----------------------------------------------------------------------
> E-Mail:
> dreibh AT exp-math.uni-essen.de
> Homepage: http://www.exp-math.uni-essen.de/~dreibh
> =======================================================================
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.0.6 (GNU/Linux)
> Comment: For info see http://www.gnupg.org
>
> iD8DBQE9s9sH32BbsHYPLWURAp6CAKDId/6qgFX7GFIvCTU9SkvE4fViMACdHuy5
> SWQYNLdhTzGEToDf08dYYWE=
> =4f+V
> -----END PGP SIGNATURE-----
> _______________________________________________
> rsplib-discussion mailing list
> rsplib-discussion AT sctp.de
> http://www.sctp.de/mailman/listinfo/rsplib-discussion
>





Archive powered by MHonArc 2.6.19+.

Top of page