From owner-freebsd-threads@FreeBSD.ORG Sun Jul 25 02:45:35 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 404F316A4CE for ; Sun, 25 Jul 2004 02:45:35 +0000 (GMT) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id D140B43D3F for ; Sun, 25 Jul 2004 02:45:34 +0000 (GMT) (envelope-from eischen@vigrid.com) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mail.pcnet.com (8.12.10/8.12.1) with ESMTP id i6P2jVjh014243; Sat, 24 Jul 2004 22:45:31 -0400 (EDT) Date: Sat, 24 Jul 2004 22:45:31 -0400 (EDT) From: Daniel Eischen X-Sender: eischen@pcnet5.pcnet.com To: Jake Hamby In-Reply-To: <41029703.8030008@anobject.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-threads@freebsd.org Subject: Re: pthread assertion failure in function _lock_acquire X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Jul 2004 02:45:35 -0000 On Sat, 24 Jul 2004, Jake Hamby wrote: > Hi all, > > I tried to build MonoDoc-1.0 using the port of mono-1.0 and -current > (__FreeBSD_version 502123) and got this error right at the beginning of > the build: > > Assertion failed: (lu->lu_myreq->lr_owner == lu), function > _lock_acquire, file /usr/src/lib/libpthread/sys/lock.c, line 171. > > The complete make output is attached below. My CFLAGS settings are: > > CPUTYPE?=p4 > CFLAGS= -O2 -pipe > > Any ideas? I filed this as bug "ports/69404". Yes, something seems wrong with the application. It's hitting code that should never be hit. We do not use any LCK_PRIORITY locks. I suspect something is accessing memory after it has been deallocated. You might also try 'ldd' on the executable to make sure it is only linked to one threads library, and that it isn't statically allocating LDTs (look for kernel warnings). -- Dan Eischen From owner-freebsd-threads@FreeBSD.ORG Mon Jul 26 11:01:54 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5A2D916A4D8 for ; Mon, 26 Jul 2004 11:01:54 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3B85543D39 for ; Mon, 26 Jul 2004 11:01:54 +0000 (GMT) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (peter@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.11/8.12.11) with ESMTP id i6QB1siG026812 for ; Mon, 26 Jul 2004 11:01:54 GMT (envelope-from owner-bugmaster@freebsd.org) Received: (from peter@localhost) by freefall.freebsd.org (8.12.11/8.12.11/Submit) id i6QB1rv9026806 for freebsd-threads@freebsd.org; Mon, 26 Jul 2004 11:01:53 GMT (envelope-from owner-bugmaster@freebsd.org) Date: Mon, 26 Jul 2004 11:01:53 GMT Message-Id: <200407261101.i6QB1rv9026806@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: peter set sender to owner-bugmaster@freebsd.org using -f From: FreeBSD bugmaster To: freebsd-threads@FreeBSD.org Subject: Current problem reports assigned to you X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Jul 2004 11:01:55 -0000 Current FreeBSD problem reports Critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2000/06/13] kern/19247 threads uthread_sigaction.c does not do anything s [2004/03/15] kern/64313 threads FreeBSD (OpenBSD) pthread implicit set/un o [2004/04/22] threads/65883threads libkse's sigwait does not work after fork 3 problems total. Serious problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2000/07/18] kern/20016 threads pthreads: Cannot set scheduling timer/Can o [2000/08/26] misc/20861 threads libc_r does not honor socket timeouts o [2001/01/20] bin/24472 threads libc_r does not honor SO_SNDTIMEO/SO_RCVT o [2001/01/25] bin/24632 threads libc_r delicate deviation from libc in ha o [2001/01/25] misc/24641 threads pthread_rwlock_rdlock can deadlock o [2001/11/26] bin/32295 threads pthread dont dequeue signals o [2002/02/01] i386/34536 threads accept() blocks other threads o [2002/05/25] kern/38549 threads the procces compiled whith pthread stoppe o [2002/06/27] threads/39922threads [PATCH?] Threaded applications executed w o [2002/08/04] misc/41331 threads Pthread library open sets O_NONBLOCK flag o [2003/03/02] threads/48856threads Setting SIGCHLD to SIG_IGN still leaves z o [2003/03/10] threads/49087threads Signals lost in programs linked with libc o [2003/05/08] threads/51949threads thread in accept cannot be cancelled 13 problems total. Non-critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2000/05/26] misc/18824 threads gethostbyname is not thread safe o [2000/10/21] misc/22190 threads A threaded read(2) from a socketpair(2) f o [2001/09/09] threads/30464threads pthread mutex attributes -- pshared o [2002/05/02] threads/37676threads libc_r: msgsnd(), msgrcv(), pread(), pwri s [2002/07/16] threads/40671threads pthread_cancel doesn't remove thread from o [2004/07/13] threads/69020threads pthreads library leaks _gc_mutex 6 problems total. From owner-freebsd-threads@FreeBSD.ORG Wed Jul 28 04:27:23 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EAE4416A513 for ; Wed, 28 Jul 2004 04:27:23 +0000 (GMT) Received: from mail5.speakeasy.net (mail5.speakeasy.net [216.254.0.205]) by mx1.FreeBSD.org (Postfix) with ESMTP id BDA7943D54 for ; Wed, 28 Jul 2004 04:27:23 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: (qmail 25989 invoked from network); 28 Jul 2004 04:27:23 -0000 Received: from dsl027-160-063.atl1.dsl.speakeasy.net (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender ) encrypted SMTP for ; 28 Jul 2004 04:27:23 -0000 Received: from slimer.baldwin.cx (slimer.baldwin.cx [192.168.0.16]) (authenticated bits=0) by server.baldwin.cx (8.12.11/8.12.11) with ESMTP id i6S4QMKm076150; Wed, 28 Jul 2004 00:27:20 -0400 (EDT) (envelope-from jhb@FreeBSD.org) From: John Baldwin To: David Xu Date: Tue, 27 Jul 2004 23:17:18 -0400 User-Agent: KMail/1.6 References: <200407191352.50465.jhb@FreeBSD.org> <40FC74CD.1080402@freebsd.org> In-Reply-To: <40FC74CD.1080402@freebsd.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200407272317.19000.jhb@FreeBSD.org> X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on server.baldwin.cx cc: threads@FreeBSD.org Subject: Re: Patch to fix cv_wait return values X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jul 2004 04:27:24 -0000 On Monday 19 July 2004 09:26 pm, David Xu wrote: > John Baldwin wrote: > > I have a patch to try to sync up the semantics of the return values of > > the > > (p->p_flag & P_WEXIT) really should be P_SINGLE_EXIT, P_WEXIT is turned > on after process has only one thread. Others are OK for me. Can you fix it in msleep() then and I'll sync cv's up with that? -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-freebsd-threads@FreeBSD.ORG Thu Jul 29 23:06:41 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 032FD16A4CE; Thu, 29 Jul 2004 23:06:41 +0000 (GMT) Received: from mail.vicor-nb.com (bigwoop.vicor-nb.com [208.206.78.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 58EF143D64; Thu, 29 Jul 2004 23:06:36 +0000 (GMT) (envelope-from julian@elischer.org) Received: from elischer.org (julian.vicor-nb.com [208.206.78.97]) by mail.vicor-nb.com (Postfix) with ESMTP id DCFB27A48C; Thu, 29 Jul 2004 16:06:35 -0700 (PDT) Message-ID: <410982FB.5060306@elischer.org> Date: Thu, 29 Jul 2004 16:06:35 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030516 X-Accept-Language: en, hu MIME-Version: 1.0 To: threads@freebsd.org, John Baldwin Content-Type: multipart/mixed; boundary="------------080906010605000700090807" X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: thread state diagram X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jul 2004 23:06:41 -0000 This is a multi-part message in MIME format. --------------080906010605000700090807 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Here is a .png image of a diagram of thread states (as they will be after my next commits) and the source for the picture (using tgif) any comments or corrections? the next commits will make very small differences only, mostly in exiting. --------------080906010605000700090807 Content-Type: text/plain; name="thread-state.obj" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="thread-state.obj" %TGIF 4.1.42-QPL state(1,37,100.000,0,0,0,16,1,9,1,1,0,0,1,0,1,0,'Courier',0,80640,0,0,0,10,0,0,1,0,0,16,0,0,1,1,1,1,1408,1088,1,0,2880,0). % % @(#)$Header$ % %W% % unit("1 pixel/pixel"). color_info(11,65535,0,[ "magenta", 65535, 0, 65535, 65535, 0, 65535, 1, "red", 65535, 0, 0, 65535, 0, 0, 1, "green", 0, 65535, 0, 0, 65535, 0, 1, "blue", 0, 0, 65535, 0, 0, 65535, 1, "yellow", 65535, 65535, 0, 65535, 65535, 0, 1, "pink", 65535, 48830, 52942, 65535, 49344, 52171, 1, "cyan", 0, 65535, 65535, 0, 65535, 65535, 1, "CadetBlue", 25443, 40606, 40092, 24415, 40606, 41120, 1, "white", 65535, 65535, 65535, 65535, 65535, 65535, 1, "black", 0, 0, 0, 0, 0, 0, 1, "DarkSlateGray", 12593, 19789, 21074, 12079, 20303, 20303, 1 ]). script_frac("0.6"). fg_bg_colors('black','white'). dont_reencode("FFDingbests:ZapfDingbats"). page(1,"",1,''). group([ box('blue','',96,64,160,128,0,1,1,0,0,0,0,0,0,'1',0,[ ]), text('black',112,83,2,0,1,42,36,1,13,5,0,0,0,0,2,42,36,0,1,"",0,0,0,0,96,'',[ minilines(42,36,0,1,0,0,0,[ mini_line(28,13,5,0,1,0,[ str_block(0,28,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,28,13,5,0,1,0,0,0,0,0, "free")]) ]), mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "memory")]) ]) ])]) ], 5,0,0,[ ]). group([ box('blue','',192,64,272,128,0,1,1,6,0,0,0,0,0,'1',0,[ ]), text('black',192,67,2,0,1,70,36,7,13,5,0,0,0,0,2,70,36,0,1,"",0,0,0,0,80,'',[ minilines(70,36,0,1,0,0,0,[ mini_line(70,13,5,0,1,0,[ str_block(0,70,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,70,13,5,0,1,0,0,0,0,0, " thread in")]) ]), mini_line(70,13,5,0,1,0,[ str_block(0,70,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,70,13,5,0,1,0,0,0,0,0, " UMA cache")]) ]) ])]) ], 15,0,0,[ ]). group([ box('blue','',304,64,384,128,0,1,1,23,0,0,0,0,0,'1',0,[ ]), text('black',304,67,3,0,1,70,54,22,13,5,0,0,0,0,2,70,54,0,1,"",0,0,0,0,80,'',[ minilines(70,54,0,1,0,0,0,[ mini_line(49,13,5,0,0,0,[ str_block(0,49,13,5,0,-6,0,0,0,[ str_seg('blue','Courier',0,80640,49,13,5,0,-6,0,0,0,0,0, "thread ")]) ]), mini_line(70,13,5,0,1,0,[ str_block(0,70,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,70,13,5,0,1,0,0,0,0,0, "on proc in")]) ]), mini_line(63,13,5,0,1,0,[ str_block(0,63,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0, "UMA cache")]) ]) ])]) ], 21,0,0,[ ]). group([ box('blue','',425,64,505,128,0,1,1,26,0,0,0,0,0,'1',0,[ ]), text('black',425,67,2,0,1,63,36,25,13,5,0,0,0,0,2,63,36,0,1,"",0,0,0,0,80,'',[ minilines(63,36,0,1,0,0,0,[ mini_line(63,13,5,0,1,0,[ str_block(0,63,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0, "thread on")]) ]), mini_line(63,13,5,0,1,0,[ str_block(0,63,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0, "live proc")]) ]) ])]) ], 24,0,0,[ ]). group([ box('blue','',528,64,608,128,0,1,1,29,0,0,0,0,0,'1',0,[ ]), text('black',528,67,3,0,1,56,54,28,13,5,0,0,0,0,2,56,54,0,1,"",0,0,0,0,80,'',[ minilines(56,54,0,1,0,0,0,[ mini_line(49,13,5,0,0,0,[ str_block(0,49,13,5,0,-6,0,0,0,[ str_seg('blue','Courier',0,80640,49,13,5,0,-6,0,0,0,0,0, "thread ")]) ]), mini_line(56,13,5,0,1,0,[ str_block(0,56,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,56,13,5,0,1,0,0,0,0,0, "runnable")]) ]), mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "single")]) ]) ])]) ], 27,0,0,[ ]). group([ box('blue','',640,64,720,128,0,1,1,32,0,0,0,0,0,'1',0,[ ]), text('black',640,67,3,0,1,49,54,31,13,5,0,0,0,0,2,49,54,0,1,"",0,0,0,0,80,'',[ minilines(49,54,0,1,0,0,0,[ mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "thread")]) ]), mini_line(49,13,5,0,1,0,[ str_block(0,49,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,49,13,5,0,1,0,0,0,0,0, "running")]) ]), mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "single")]) ]) ])]) ], 30,0,0,[ ]). group([ box('blue','',752,64,832,128,0,1,1,35,0,0,0,0,0,'1',0,[ ]), text('black',752,67,3,0,1,63,54,34,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,80,'',[ minilines(63,54,0,1,0,0,0,[ mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "thread")]) ]), mini_line(63,13,5,0,1,0,[ str_block(0,63,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0, "inhibited")]) ]), mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "single")]) ]) ])]) ], 33,0,0,[ ]). group([ box('red','',512,224,592,288,0,1,1,38,0,0,0,0,0,'1',0,[ ]), text('black',512,227,2,0,1,49,36,37,13,5,0,0,0,0,2,49,36,0,1,"",0,0,0,0,240,'',[ minilines(49,36,0,1,0,0,0,[ mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "thread")]) ]), mini_line(49,13,5,0,1,0,[ str_block(0,49,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,49,13,5,0,1,0,0,0,0,0, "exiting")]) ]) ])]) ], 36,0,0,[ ]). group([ box('red','',400,224,480,288,0,1,1,41,0,0,0,0,0,'1',0,[ ]), text('black',400,227,3,0,1,70,54,40,13,5,0,0,0,0,2,70,54,0,1,"",0,0,0,0,240,'',[ minilines(70,54,0,1,0,0,0,[ mini_line(63,13,5,0,1,0,[ str_block(0,63,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,63,13,5,0,1,0,0,0,0,0, "thread on")]) ]), mini_line(35,13,5,0,0,0,[ str_block(0,35,13,5,0,-6,0,0,0,[ str_seg('red','Courier',0,80640,35,13,5,0,-6,0,0,0,0,0, "PCPU ")]) ]), mini_line(70,13,5,0,1,0,[ str_block(0,70,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,70,13,5,0,1,0,0,0,0,0, "deadthread")]) ]) ])]) ], 39,0,0,[ ]). group([ box('red','',288,224,368,288,0,1,1,44,0,0,0,0,0,'1',0,[ ]), text('black',288,227,3,0,1,70,54,43,13,5,0,0,0,0,2,70,54,0,1,"",0,0,0,0,240,'',[ minilines(70,54,0,1,0,0,0,[ mini_line(70,13,5,0,1,0,[ str_block(0,70,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,70,13,5,0,1,0,0,0,0,0, " thread in")]) ]), mini_line(56,13,5,0,1,0,[ str_block(0,56,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,56,13,5,0,1,0,0,0,0,0, " reap GC")]) ]), mini_line(28,13,5,0,0,0,[ str_block(0,28,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,28,13,5,0,0,0,0,0,0,0, "List")]) ]) ])]) ], 42,0,0,[ ]). group([ box('red','',512,352,592,416,0,1,1,79,0,0,0,0,0,'1',0,[ ]), text('black',512,355,3,0,1,63,54,80,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,368,'',[ minilines(63,54,0,1,0,0,0,[ mini_line(49,13,5,0,0,0,[ str_block(0,49,13,5,0,-6,0,0,0,[ str_seg('red','Courier',0,80640,49,13,5,0,-6,0,0,0,0,0, "thread ")]) ]), mini_line(63,13,5,0,0,0,[ str_block(0,63,13,5,0,-1,0,0,0,[ str_seg('red','Courier',0,80640,63,13,5,0,-1,0,0,0,0,0, "runnable,")]) ]), mini_line(35,13,5,0,1,0,[ str_block(0,35,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,35,13,5,0,1,0,0,0,0,0, "multi")]) ]) ])]) ], 78,0,0,[ ]). group([ box('red','',624,352,704,416,0,1,1,82,0,0,0,0,0,'1',0,[ ]), text('black',624,355,3,0,1,49,54,83,13,5,0,0,0,0,2,49,54,0,1,"",0,0,0,0,368,'',[ minilines(49,54,0,1,0,0,0,[ mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "thread")]) ]), mini_line(49,13,5,0,1,0,[ str_block(0,49,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,49,13,5,0,1,0,0,0,0,0, "running")]) ]), mini_line(35,13,5,0,1,0,[ str_block(0,35,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,35,13,5,0,1,0,0,0,0,0, "multi")]) ]) ])]) ], 81,0,0,[ ]). group([ box('red','',752,352,832,416,0,1,1,85,0,0,0,0,0,'1',0,[ ]), text('black',752,355,3,0,1,63,54,86,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,368,'',[ minilines(63,54,0,1,0,0,0,[ mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "thread")]) ]), mini_line(63,13,5,0,1,0,[ str_block(0,63,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,63,13,5,0,1,0,0,0,0,0, "inhibited")]) ]), mini_line(35,13,5,0,1,0,[ str_block(0,35,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,35,13,5,0,1,0,0,0,0,0, "multi")]) ]) ])]) ], 84,0,0,[ ]). poly('red','',3,[ 288,256,256,256,256,128],1,1,1,117,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',2,[ 160,96,192,96],1,1,1,118,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',2,[ 272,96,304,96],1,1,1,120,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',2,[ 496,96,528,96],1,1,1,122,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',2,[ 608,96,640,96],1,1,1,123,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',2,[ 720,96,752,96],1,1,1,125,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',2,[ 672,128,672,352],1,1,1,129,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',2,[ 704,384,752,384],1,1,1,131,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',2,[ 688,352,688,128],1,1,1,168,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). group([ box('blue','',496,144,576,208,0,1,1,170,0,0,0,0,0,'1',0,[ ]), text('black',496,147,3,0,1,63,54,171,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,160,'',[ minilines(63,54,0,1,0,0,0,[ mini_line(63,13,5,0,1,0,[ str_block(0,63,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0, "thread on")]) ]), mini_line(49,13,5,0,1,0,[ str_block(0,49,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,49,13,5,0,1,0,0,0,0,0, "exiting")]) ]), mini_line(28,13,5,0,1,0,[ str_block(0,28,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,28,13,5,0,1,0,0,0,0,0, "proc")]) ]) ])]) ], 169,0,0,[ ]). group([ box('blue','',384,144,464,208,0,1,1,173,0,0,0,0,0,'1',0,[ ]), text('black',384,147,3,0,1,63,54,174,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,160,'',[ minilines(63,54,0,1,0,0,0,[ mini_line(63,13,5,0,1,0,[ str_block(0,63,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0, "thread on")]) ]), mini_line(42,13,5,0,1,0,[ str_block(0,42,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0, "zombie")]) ]), mini_line(28,13,5,0,1,0,[ str_block(0,28,13,5,0,1,0,0,0,[ str_seg('blue','Courier',0,80640,28,13,5,0,1,0,0,0,0,0, "proc")]) ]) ])]) ], 172,0,0,[ ]). poly('blue','',2,[ 496,176,464,176],1,1,1,175,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). group([ box('red','',288,352,368,416,0,1,1,188,0,0,0,0,0,'1',0,[ ]), text('black',288,355,3,0,1,49,54,189,13,5,0,0,0,0,2,49,54,0,1,"",0,0,0,0,368,'',[ minilines(49,54,0,1,0,0,0,[ mini_line(35,13,5,0,1,0,[ str_block(0,35,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,35,13,5,0,1,0,0,0,0,0, "spare")]) ]), mini_line(21,13,5,0,0,0,[ str_block(0,21,13,5,0,-6,0,0,0,[ str_seg('red','Courier',0,80640,21,13,5,0,-6,0,0,0,0,0, "on ")]) ]), mini_line(49,13,5,0,1,0,[ str_block(0,49,13,5,0,1,0,0,0,[ str_seg('red','Courier',0,80640,49,13,5,0,1,0,0,0,0,0, "sibling")]) ]) ])]) ], 187,0,0,[ ]). poly('red','',2,[ 368,384,512,384],1,1,1,198,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',2,[ 192,112,160,112],1,1,1,212,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',2,[ 384,96,432,96],1,1,1,217,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',3,[ 208,128,208,384,288,384],1,1,1,227,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',2,[ 592,384,624,384],1,1,1,286,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',3,[ 288,368,224,368,224,128],1,1,1,304,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',6,[ 832,96,848,96,848,48,512,48,512,80,528,80],1,1,1,339,0,0,0,0,0,0,0,'1',0,0, "00","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',6,[ 832,384,864,384,864,432,480,432,480,400,512,400],1,1,1,340,0,0,0,0,0,0,0,'1',0,0, "00","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',2,[ 512,256,480,256],1,1,1,345,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',2,[ 400,256,368,256],1,1,1,346,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('red','',3,[ 640,352,640,256,592,256],1,1,1,375,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',3,[ 656,128,656,176,576,176],1,1,1,377,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',3,[ 384,176,336,176,336,128],1,1,1,378,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). poly('blue','',2,[ 304,112,272,112],1,1,1,1318,0,0,0,0,0,0,0,'1',0,0, "0","",[ 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[ ]). text('blue',176,83,1,0,1,7,18,1340,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0, "1")]) ]) ])]). text('blue',288,83,1,0,1,7,18,1342,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0, "2")]) ]) ])]). text('blue',176,99,1,0,1,7,18,1344,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,112,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0, "3")]) ]) ])]). text('blue',288,99,1,0,1,7,18,1346,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,112,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0, "4")]) ]) ])]). text('blue',400,83,1,0,1,7,18,1348,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0, "5")]) ]) ])]). text('blue',512,83,1,0,1,7,18,1350,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0, "6")]) ]) ])]). text('blue',560,35,1,0,1,7,18,1352,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,48,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,-1,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,-1,0,0,0,0,0, "7")]) ]) ])]). text('blue',624,83,1,0,1,7,18,1354,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0, "8")]) ]) ])]). text('blue',736,83,1,0,1,7,18,1356,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[ minilines(7,18,0,0,0,0,0,[ mini_line(7,13,5,0,0,0,[ str_block(0,7,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0, "9")]) ]) ])]). text('blue',608,163,1,0,1,14,18,1358,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,176,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "10")]) ]) ])]). text('blue',480,163,1,0,1,14,18,1360,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,176,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "11")]) ]) ])]). text('red',656,195,1,0,1,14,18,1366,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,208,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "12")]) ]) ])]). text('red',688,195,1,0,1,14,18,1370,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,208,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "13")]) ]) ])]). text('red',720,371,1,0,1,14,18,1372,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,384,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "14")]) ]) ])]). text('red',720,419,1,0,1,14,18,1374,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,432,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "15")]) ]) ])]). text('red',624,291,1,0,1,14,18,1378,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,304,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,-1,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,-1,0,0,0,0,0, "17")]) ]) ])]). text('red',496,243,1,0,1,14,18,1380,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,256,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "18")]) ]) ])]). text('red',384,243,1,0,1,14,18,1382,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,256,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "19")]) ]) ])]). text('red',272,243,1,0,1,14,18,1384,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,256,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "20")]) ]) ])]). text('red',400,387,1,0,1,14,18,1388,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,400,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "22")]) ]) ])]). text('red',224,371,1,0,1,14,18,1390,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,384,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "23")]) ]) ])]). text('red',240,355,1,0,1,14,18,1392,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,368,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "24")]) ]) ])]). text('red',592,371,1,0,1,14,18,1405,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,384,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "16")]) ]) ])]). text('blue',128,505,1,0,1,449,28,1407,23,5,0,0,0,0,2,449,28,0,0,"",0,0,0,0,528,'',[ minilines(449,28,0,0,0,0,0,[ mini_line(449,23,5,0,0,0,[ str_block(0,449,23,5,0,-2,0,0,0,[ str_seg('blue','NewCenturySchlbk-Roman',0,144000,449,23,5,0,-2,0,0,0,0,0, "BLUE - Normal nonthreaded operation.")]) ]) ])]). text('blue',128,537,1,0,1,464,28,1409,23,5,0,0,0,0,2,464,28,0,0,"",0,0,0,0,560,'',[ minilines(464,28,0,0,0,0,0,[ mini_line(464,23,5,0,0,0,[ str_block(0,464,23,5,0,-1,0,0,0,[ str_seg('red','NewCenturySchlbk-Roman',0,138240,464,23,5,0,-1,0,0,0,0,0, "RED - Threaded operation, (KSE+THR)")]) ]) ])]). text('blue',128,579,16,0,1,483,288,1417,13,5,0,0,0,0,2,483,288,0,1,"",0,0,0,0,592,'',[ minilines(483,288,0,1,0,0,0,[ mini_line(154,13,5,0,0,0,[ str_block(0,154,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,154,13,5,0,-1,0,0,0,0,0, "1 - thread_init()")]) ]), mini_line(154,13,5,0,0,0,[ str_block(0,154,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,154,13,5,0,-1,0,0,0,0,0, "2,23 - thread_ctor()")]) ]), mini_line(154,13,5,0,0,0,[ str_block(0,154,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,154,13,5,0,-1,0,0,0,0,0, "3 - thread_fini()")]) ]), mini_line(161,13,5,0,0,0,[ str_block(0,161,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,161,13,5,0,-1,0,0,0,0,0, "4,24,20 - thread_dtor()")]) ]), mini_line(308,13,5,0,0,0,[ str_block(0,308,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,308,13,5,0,-1,0,0,0,0,0, "5 - fork1 via proc_alloc(), proc_ctor()")]) ]), mini_line(273,13,5,0,0,0,[ str_block(0,273,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,273,13,5,0,-1,0,0,0,0,0, "6,7,15,22 - setrunnable()/setrunqueue()")]) ]), mini_line(273,13,5,0,0,0,[ str_block(0,273,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,273,13,5,0,-1,0,0,0,0,0, "8,16 - choosethread() via mi_switch()")]) ]), mini_line(483,13,5,0,0,0,[ str_block(0,483,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,483,13,5,0,-1,0,0,0,0,0, "9,14 - various- msleep/mutex, etc. via mi_switch() via cpu_switch()")]) ]), mini_line(112,13,5,0,0,0,[ str_block(0,112,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,112,13,5,0,-1,0,0,0,0,0, "10,11 - exit1()")]) ]), mini_line(245,13,5,0,0,0,[ str_block(0,245,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,245,13,5,0,-1,0,0,0,0,0, "12 - thr_create(), kse_create()")]) ]), mini_line(392,13,5,0,0,0,[ str_block(0,392,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,392,13,5,0,-1,0,0,0,0,0, "13 - (thr_exit(), kse_exit()) kern_execve(), exit1()")]) ]), mini_line(371,13,5,0,0,0,[ str_block(0,371,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,371,13,5,0,-1,0,0,0,0,0, "17 - thread_exit(), from thr_exit() or kse_exit()")]) ]), mini_line(287,13,5,0,0,0,[ str_block(0,287,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,287,13,5,0,-1,0,0,0,0,0, "18 - thread_exit() before cpu_throw()")]) ]), mini_line(364,13,5,0,1,0,[ str_block(0,364,13,5,0,1,0,0,0,[ str_seg('black','Courier',0,80640,364,13,5,0,1,0,0,0,0,0, "19 - mi_switch via thread_stash() after switchin")]) ]), mini_line(343,13,5,0,0,0,[ str_block(0,343,13,5,0,-1,0,0,0,[ str_seg('black','Courier',0,80640,343,13,5,0,-1,0,0,0,0,0, "21 - kern_wait() via proc_free(), proc_dtor()")]) ]), mini_line(0,13,5,0,0,0,[ str_block(0,0,13,5,0,0,0,0,0,[ str_seg('black','Courier',0,80640,0,13,5,0,0,0,0,0,0,0, "")]) ]) ])]). text('blue',336,147,1,0,1,14,18,1429,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,160,'',[ minilines(14,18,0,0,0,0,0,[ mini_line(14,13,5,0,0,0,[ str_block(0,14,13,5,0,0,0,0,0,[ str_seg('blue','Courier',0,80640,14,13,5,0,0,0,0,0,0,0, "21")]) ]) ])]). --------------080906010605000700090807-- From owner-freebsd-threads@FreeBSD.ORG Thu Jul 29 23:24:46 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 92D9F16A4CE; Thu, 29 Jul 2004 23:24:46 +0000 (GMT) Received: from mail.vicor-nb.com (bigwoop.vicor-nb.com [208.206.78.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 820EF43D48; Thu, 29 Jul 2004 23:24:46 +0000 (GMT) (envelope-from julian@elischer.org) Received: from elischer.org (julian.vicor-nb.com [208.206.78.97]) by mail.vicor-nb.com (Postfix) with ESMTP id 619137A3D2; Thu, 29 Jul 2004 16:24:46 -0700 (PDT) Message-ID: <4109873E.4010007@elischer.org> Date: Thu, 29 Jul 2004 16:24:46 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030516 X-Accept-Language: en, hu MIME-Version: 1.0 To: Julian Elischer , threads@freebsd.org, John Baldwin References: <410982FB.5060306@elischer.org> In-Reply-To: <410982FB.5060306@elischer.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: thread state diagram X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jul 2004 23:24:46 -0000 sorry guys the list server seems to have stripped off the image file.. you'll find it at: http://www/freebsd.org/~julian/thread-state.png in a few minutes.. Julian Elischer wrote: > Here is a .png image of a diagram of thread states (as they will be > after my next commits) > and the source for the picture (using tgif) > > any comments or corrections? > > the next commits will make very small differences only, mostly in > exiting. > > > >sd-threads >To unsubscribe, send any mail to "freebsd-threads-unsubscribe@freebsd.org" > > From owner-freebsd-threads@FreeBSD.ORG Thu Jul 29 23:28:04 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D132316A4CE; Thu, 29 Jul 2004 23:28:04 +0000 (GMT) Received: from mail.vicor-nb.com (bigwoop.vicor-nb.com [208.206.78.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id BE3D943D2D; Thu, 29 Jul 2004 23:28:04 +0000 (GMT) (envelope-from julian@elischer.org) Received: from elischer.org (julian.vicor-nb.com [208.206.78.97]) by mail.vicor-nb.com (Postfix) with ESMTP id 931997A48C; Thu, 29 Jul 2004 16:28:04 -0700 (PDT) Message-ID: <41098804.4030401@elischer.org> Date: Thu, 29 Jul 2004 16:28:04 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030516 X-Accept-Language: en, hu MIME-Version: 1.0 To: Julian Elischer References: <410982FB.5060306@elischer.org> <4109873E.4010007@elischer.org> In-Reply-To: <4109873E.4010007@elischer.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: threads@freebsd.org cc: John Baldwin Subject: Re: thread state diagram X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jul 2004 23:28:04 -0000 Julian Elischer wrote: > sorry guys the list server seems to have stripped off the image file.. > you'll find it at: > http://www/freebsd.org/~julian/thread-state.png in a few minutes.. that's http://www.freebsd.org/~julian/thread-state.png of course > > > Julian Elischer wrote: > From owner-freebsd-threads@FreeBSD.ORG Sat Jul 31 09:29:29 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 20B7F16A4CE for ; Sat, 31 Jul 2004 09:29:29 +0000 (GMT) Received: from smarthost.enta.net (smarthost.enta.net [195.74.97.231]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6EC5343D5F for ; Sat, 31 Jul 2004 09:29:28 +0000 (GMT) (envelope-from jacs@gnome.co.uk) Received: from smartsmtp.enta.net (smtp.enta.net [195.74.97.230]) by smarthost.enta.net (Postfix) with ESMTP id 3FA43F639D for ; Sat, 31 Jul 2004 10:29:01 +0100 (BST) Received: from smtp.enta.net (localhost [127.0.0.1]) by smartsmtp.enta.net (8.12.3/8.12.3) with ESMTP id i6V9TCfi051738 for ; Sat, 31 Jul 2004 10:29:13 +0100 (BST) (envelope-from jacs@gnome.co.uk) Received: from hawk.gnome.co.uk (81-31-113-153.adsl.entanet.co.uk [81.31.113.153]) by smtp.enta.net (Postfix) with SMTP id 8606F98144 for ; Sat, 31 Jul 2004 10:29:12 +0100 (BST) Received: from kite (kite.gnome.co.uk [192.168.123.3]) by hawk.gnome.co.uk (8.12.10/8.12.10) with SMTP id i6V9Sqse036796 for ; Sat, 31 Jul 2004 10:28:52 +0100 (BST) (envelope-from jacs@gnome.co.uk) Message-ID: <002c01c476e0$cb53b8b0$037ba8c0@gnome.co.uk> From: "Chris Stenton" To: Date: Sat, 31 Jul 2004 10:28:52 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Scanned-By: MIMEDefang 2.44 Subject: difference between tsleep and usleep in a thread on FreeBSD 5.2.1 X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Jul 2004 09:29:29 -0000 Hi, I am trying to track down a bug in a pthreaded programme and wonder if someone could help. One of the threads calls a kernel module that puts the process in tsleep until a defined event occurs. However, in this state all other threads are not serviced. If I however replace this with a straight usleep in the thread then all other threads get serviced during that period. Could someone tell me the difference between the two forms of sleep in a thread so it may help me track down the problem. Could you email replies as I am not on this list. Thanks Chris