Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 May 2008 18:17:43 +0300
From:      Andriy Gapon <avg@icyb.net.ua>
To:        freebsd-threads@freebsd.org, freebsd-stable@freebsd.org
Subject:   thread scheduling at mutex unlock
Message-ID:  <482B0297.2050300@icyb.net.ua>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------070900000602090808030708
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit


I am trying the small attached program on FreeBSD 6.3 (amd64,
SCHED_4BSD) and 7-STABLE (i386, SCHED_ULE), both with libthr as threads
library and on both it produces "BROKEN" message.

I compile this program as follows:
cc sched_test.c -o sched_test -pthread

I believe that the behavior I observe is broken because: if thread #1
releases a mutex and then tries to re-acquire it while thread #2 was
already blocked waiting on that mutex, then thread #1 should be "queued"
after thread #2 in mutex waiter's list.

Is there any option (thread scheduler, etc) that I could try to achieve
"good" behavior?

P.S. I understand that all this is subject to (thread) scheduler policy,
but I think that what I expect is more reasonable, at least it is more
reasonable for my application.

-- 
Andriy Gapon

--------------070900000602090808030708--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?482B0297.2050300>