PERFORCE change 44709 for review
John Baldwin
jhb at FreeBSD.org
Mon Jan 5 14:30:26 PST 2004
On 02-Jan-2004 Juli Mallett wrote:
> * Sam Leffler <sam at errno.com> [ Date: 2004-01-02 ]
> [ w.r.t. Re: PERFORCE change 44709 for review ]
>> On Friday 02 January 2004 02:04 pm, John Baldwin wrote:
>> > http://perforce.freebsd.org/chv.cgi?CH=44709
>> >
>> > Change 44709 by jhb at jhb_blue on 2004/01/02 14:04:27
>> >
>> > Bah, stupid bug.
>> >
>> > Affected files ...
>> >
>> > .. //depot/projects/smpng/sys/modules/crash/crash.c#8 edit
>> >
>> > Differences ...
>> >
>> > ==== //depot/projects/smpng/sys/modules/crash/crash.c#8 (text+ko) ====
>> >
>> > @@ -234,9 +234,9 @@
>> > break;
>> > case 18:
>> > bzero(&test1_mtx, sizeof(test1_mtx));
>> > - bzero(&test1_mtx, sizeof(test2_mtx));
>> > + bzero(&test2_mtx, sizeof(test2_mtx));
>> > mtx_init(&test1_mtx, "test1", NULL, MTX_DEF);
>> > - mtx_init(&test1_mtx, "test2", NULL, MTX_DEF |
>> > + mtx_init(&test2_mtx, "test2", NULL, MTX_DEF |
>> > MTX_RECURSE);
>> > #define TRYLOCK_TEST(lock, descr) do { \
>> > status = mtx_trylock((lock)); \
>>
>> Bah bah, bogus assertions.
>
> Agreed. I want something to *initialize* these things. I hate one bit
> of code I have at work:
>
> sc->[all fields] = [appropriate values for fields]
> bzero(&sc->mtx, sizeof sc->mtx);
> mtx_init(&sc->mtx, "blah", NULL, MTX_DEF);
>
> *shrug*
My bug was a real one up there that the assertion caught. I had
double-init'd test1 and never init'd test2. Perhaps I should break
down and add a MTX_FRESH or MTX_NEW flag that skips the assertion.
Of course, it just means that when someone does forget to init a
mutex or dose a double init they just have a really hard to track
down bug. :-/
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
More information about the p4-projects
mailing list