Date: Fri, 11 Oct 2002 07:16:53 -0600 From: "Andrei Cojocaru" <spinlock_lists@empirequest.com> To: "Peter Pentchev" <roam@ringlet.net> Cc: <freebsd-hackers@FreeBSD.ORG> Subject: Re: Question about light-weight mutex (kind of) Message-ID: <004e01c27128$77828c30$0300a8c0@fivehundred> References: <000d01c270c8$937a2160$0200a8c0@twothousand> <20021011110508.GR376@straylight.oblivion.bg> <20021011110640.GS376@straylight.oblivion.bg>
next in thread | previous in thread | raw e-mail | index | archive | help
Ah, no. I am writing my own R/W lock because I need the ability to offload them = to disk. I think condition variables should be fast enough for what I'm = looking for. Any ideas? ----- Original Message -----=20 From: "Peter Pentchev" <roam@ringlet.net> To: "Andrei Cojocaru" <spinlock_lists@empirequest.com> Cc: <freebsd-hackers@FreeBSD.ORG> Sent: Friday, October 11, 2002 05:06 Subject: Re: Question about light-weight mutex (kind of) On Fri, Oct 11, 2002 at 02:05:08PM +0300, Peter Pentchev wrote: > On Thu, Oct 10, 2002 at 07:50:28PM -0600, Andrei Cojocaru wrote: > > Hello, > >=20 > > I have a question, please include me in the reply specifically = because I'm > > not subscribed to the mailing list. Thanks > >=20 > > I want a thread to spin atomically on a value until it's equal to = 1(i.e. > > it's waiting for an event), how do I do that? I have no idea.. I = want this > > to be fast, not have to use a mutex each time to protect the value > > I have an idea of how to do it using atomic assembly statements but = I don't > > want to use assmebly, I want to know if FreeBSD has built-in stuff = for this. > >=20 > > Please help thanks. > >=20 > > This is required because I'm building R/W locks for a transaction = system I'm > > working on, and I need a way for a thread waiting on a lock to be = notified > > when a lock is gotten (and without having the thread block [that's = why I > > want it to spin]). Any hints would be appreciated thanks, once = again. >=20 > Would pthread_rwlock_tryrdlock(3) and pthread_rwlock_tryrdlock(3), > combined with an usleep() or something, do the trick? Of course, the second one was meant to be pthread_rwlock_trywrlock(3)... G'luck, Peter --=20 Peter Pentchev roam@ringlet.net roam@FreeBSD.org PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 Hey, out there - is it *you* reading me, or is it someone else? To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?004e01c27128$77828c30$0300a8c0>