9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: Re: [9fans] channel_lock
Date: Mon, 14 Jul 2008 15:07:58 -0400	[thread overview]
Message-ID: <61d4bbe5c7dc2aec46ffb603ed219b88@quanstro.net> (raw)
In-Reply-To: <071420081847.25641.487B9F36000AB7F2000064292200761064040196960E040E9F@comcast.net>

> I have been looking and the implementation of channels/alt in Plan9,
> and I have a question.  Does lock()/unlock() work across procs (not
> just threads)?  For example, in channel.c there is a static Lock
> *channel_lock.  Does this provide exclusive to channel data across
> procs?
>
>  I assume yes, just trying to make sure I'm understanding it
>  correctly.  I was expecting to see code which handles channel access
>  "across procs" differently than channel access between threads "in
>  the same proc", but I didn't see anything like that.

locks are not necessary between threads in the same proc
because only one of them can run at a time and they are
cooperatively scheduled.

the only case that needs to be handled is locking between
procs.  thus there is no special case for locking between
threads regardless of implementation

on the other hand, if you look at the implementation of lock
(/sys/src/libc/port/lock.c), it does not depend on the the
implentation of threads or procs.  it relies on an atomic
tas instruction (or simuation thereof for mips) only.

- erik




  reply	other threads:[~2008-07-14 19:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-14 18:47 palazzol
2008-07-14 19:07 ` erik quanstrom [this message]
2008-07-14 21:04   ` Russ Cox
2008-07-14 20:58 ` Russ Cox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=61d4bbe5c7dc2aec46ffb603ed219b88@quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).