On 2012-10-09 14:48:14, Kirill Bychkov <ya...@linklevel.net> wrote:
> 
> Nope, it's still crashing
> 

Tangogps started crashing for me when (IIRC) the following commit to
rthreads was made.

http://www.openbsd.org/cgi-bin/cvsweb/src/lib/librthread/rthread_sync.c.diff?r1=1.33;r2=1.34;f=h

I hacked the following patch to restore tangogps to a working
state.  I should state that I have no idea how this affects the
system as a whole beyond the fact that nothing broke for me.

Since this is changing undefined behavior, it may be safe but it
may also crash your system, format your drives, and sing off-key
humppa songs to your pet cat.

I mention this patch only to illustrate how the problem started
and expect to be sternly corrected by someone who knows better if
this patch is going to do terrible things (which I fully expect
that it may).  

I would *strongly* encourage you not to test this on a production
system and to make sure that you have backups of whatever system
you do try this on.   Better to be safe than sorry.

ISTR that this change was made deliberately to flush out programs
that were sloppy in their usage of threads, but this was long ago
and I may be mistaken in that regard.

-- 
Bryan

Index: rthread_sync.c
===================================================================
RCS file: /cvs/src/lib/librthread/rthread_sync.c,v
retrieving revision 1.36
diff -u -p -u -r1.36 rthread_sync.c
--- rthread_sync.c      14 Apr 2012 12:07:49 -0000      1.36
+++ rthread_sync.c      10 Jun 2012 22:01:16 -0000
@@ -215,7 +215,8 @@ pthread_mutex_unlock(pthread_mutex_t *mu
                            mutex->type == PTHREAD_MUTEX_NORMAL)
                                return (0);
                        else
-                               abort();
+                               return (0);
+                       /*      abort(); */
                }
        }
 

Reply via email to