Date: Wed, 4 Mar 2009 04:54:32 -0800 (PST) From: Barney Cordoba <barney_cordoba@yahoo.com> To: current@freebsd.org Subject: MTX Lock implementation question Message-ID: <142283.66010.qm@web63903.mail.re1.yahoo.com>
next in thread | raw e-mail | index | archive | help
Suppose the following: Module foo.c foo_getlock(sc) { FOO_LOCK(sc); } foo_unlock(sc) { FOO_UNLOCK(sc); } foo_dosomething(sc) { MTX_LOCK_ASSERT(sc); foo_dooit(); } Module bar.c bar_dofoo() { foo_getlock(sc); foo_dosomething(sc); foo_unlock(sc); } Is this something that shouldn't work? I need to access functions that require locks in a different module, but this code barfs on ASSERT with witness enabled. Is this a deflugalty in WITNESS, or do I need to create functions within foo that do the locking? Its been working ok for awhile (its not a high volume function) but when I fired up witness to debug something else I encountered witness panics. Thanks, Barney
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?142283.66010.qm>