The distribution doesn't matter.  It's the thread implementation.

I didn't say you wouldn't get cores, just that it's not reliable.  (read:
the core you get might not be from the thread that crashed)

Read below from the Linuxthreads FAQ:

> LinuxThreads Frequently Asked Questions
> 
>     G.2: Does it work with post-mortem debugging?
>  
>    Not very well. Generally, the core file does not correspond to the
>    thread that crashed. The reason is that the kernel will not dump core
>    for a process that shares its memory with other processes, such as the
>    other threads of your program. So, the thread that crashes silently
>    disappears without generating a core file. Then, all other threads of
>    your program die on the same signal that killed the crashing thread.
>    (This is required behavior according to the POSIX standard.) The last
>    one that dies is no longer sharing its memory with anyone else, so the
>    kernel generates a core file for that thread. Unfortunately, that's
>    not the thread you are interested in.
>  
>     G.3: Any other ways to debug multithreaded programs, then?
>  
>    Assertions and printf() are your best friends. Try to debug sequential
>    parts in a single-threaded program first. Then, put printf()
>    statements all over the place to get execution traces. Also, check
>    invariants often with the assert() macro. In truth, there is no other
>    effective way (save for a full formal proof of your program) to track
>    down concurrency bugs. Debuggers are not really effective for subtle
>    concurrency problems, because they disrupt program execution too much.
> 

 

> -----Original Message-----
> From: Chris "Winston" Litchfield [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, August 03, 2003 6:56 PM
> To: Jason Gauthier; 'Dale Kingston'; [email protected]
> Subject: Re: Fork()
> 
> Jason,
> 
> I have no trouble with core dumps.  2.4 kernel set.  You must 
> use the later versions of GDB to get correct information out. 
>  I also use Mandrake instead of Redcrap.
> 
> Chris
> ----- Original Message -----
> From: "Jason Gauthier" <[EMAIL PROTECTED]>
> To: "'Chris "Winston" Litchfield'" <[EMAIL PROTECTED]>; 
> "'Dale Kingston'"
> <[EMAIL PROTECTED]>; <[email protected]>
> Sent: Sunday, August 03, 2003 3:38 PM
> Subject: RE: Fork()
> 
> 
> > Only problem with using threads:
> >
> > If you are using linux, and a kernel that is not in the 2.5 
> or 2.6 series
> > you will not get reliable core dumps.
> >
> > If you don't care, then go for it.
> >
> >
> > > -----Original Message-----
> > > From: Chris "Winston" Litchfield [mailto:[EMAIL PROTECTED]
> > > Sent: Sunday, August 03, 2003 2:20 PM
> > > To: Dale Kingston; [email protected]
> > > Subject: Re: Fork()
> > >
> > >
> > > Just use threads.  Its easier and works the same.
> > >
> > > Here is my init_descriptor using threads as an example.
> > > #include <pthread.h>
> > >
> > > pthread_t thread;
> > >
> > > pthread_create(&thread, NULL,(void *)init_descriptor,(void
> > > *)control); pthread_detach(thread);
> > >
> > > Init_descriptor instead of returns has "pthread_exit()"  and
> > > you have a threaded app.
> > >
> > > create and exit.  It uses the SAME memory you have now.
> > >
> > >
> > >
> > > compile with -lpthread
> > >
> > > ----- Original Message ----- 
> > > From: "Dale Kingston" <[EMAIL PROTECTED]>
> > > To: <[email protected]>
> > > Sent: Saturday, August 02, 2003 9:44 PM
> > > Subject: Fork()
> > >
> > >
> > > > Does anyone know where I could read up on how to use 
> fork()? Would
> > > > like
> > > the
> > > > mud to do something on the side, but it's going to take 
> a second or
> > > > two to process it.
> > > >
> > > > Basically I've made a pfile cleaner to go through and 
> clean up the
> > > > pfiles remove old ones what not. And I have it do a backup
> > > to when it
> > > > does this. But it causes the mud to halt for a second 
> while it does
> > > > all this. So I've heard/seen a little bit on fork. But idk
> > > really how
> > > > to use it. This
> > > cleaner
> > > > is just one function so would I just like:
> > > >
> > > > if (fork())
> > > > {
> > > >     clean_pfiles();
> > > >    exit(0);
> > > > }
> > > >
> > > > Or how would I use fork to do that. I don't need 
> anything from the
> > > > process information wise. I would just need it to run this one
> > > > function and the close the process.
> > > >
> > > > So if anyone knows somewhere, where I could read up on it.
> > > Or maybe an
> > > > explaininaion on how to do this would be very appreciated.
> > > >
> > > >
> > > > --
> > > > ROM mailing list
> > > > [email protected]
> > > > http://www.rom.org/cgi-bin/mailman/listinfo/rom
> > > >
> > > >
> > >
> > >
> > >
> > > -- 
> > > ROM mailing list
> > > [email protected]
> > > http://www.rom.org/cgi-bin/mailman/listinfo/rom
> > >
> >
> >
> 
> 

Reply via email to