From: Helmut Eller <eller.helmut@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: pipcet@protonmail.com, gerd.moellmann@gmail.com,
ofv@wanadoo.es, emacs-devel@gnu.org, acorallo@gnu.org
Subject: Re: SIGPROF + SIGCHLD and igc
Date: Sat, 28 Dec 2024 19:08:18 +0100 [thread overview]
Message-ID: <8734i7of3h.fsf@gmail.com> (raw)
In-Reply-To: <867c7jsoat.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 28 Dec 2024 19:35:54 +0200")
On Sat, Dec 28 2024, Eli Zaretskii wrote:
>> If two threads are claiming a the same non-recursive lock concurrently,
>> then it's not an error.
>
> Oh, so you are saying that taking the lock twice is a fatal error only
> if that is done from the same thread? Is that known for certain?
Ahem, now you're making be nervous. I'll show the implementation
before I say something stupid:
/* LockClaim -- claim a lock (non-recursive) */
void (LockClaim)(Lock lock)
{
int res;
AVERT(Lock, lock);
res = pthread_mutex_lock(&lock->mut);
/* pthread_mutex_lock will error if we own the lock already. */
AVER(res == 0); /* <design/check/#.common> */
/* This should be the first claim. Now we own the mutex */
/* it is ok to check this. */
AVER(lock->claims == 0);
lock->claims = 1;
}
/* LockClaimRecursive -- claim a lock (recursive) */
void (LockClaimRecursive)(Lock lock)
{
int res;
AVERT(Lock, lock);
res = pthread_mutex_lock(&lock->mut);
/* pthread_mutex_lock will return: */
/* 0 if we have just claimed the lock */
/* EDEADLK if we own the lock already. */
AVER((res == 0) == (lock->claims == 0));
AVER((res == EDEADLK) == (lock->claims > 0));
++lock->claims;
AVER(lock->claims > 0);
}
> Are we sure MPS must take the lock before it can stop registered
> threads?
Now that's a question for the MPS mailing list.
Helmut
next prev parent reply other threads:[~2024-12-28 18:08 UTC|newest]
Thread overview: 200+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-22 15:40 Some experience with the igc branch Óscar Fuentes
2024-12-22 17:18 ` Gerd Möllmann
2024-12-22 17:29 ` Gerd Möllmann
2024-12-22 17:41 ` Pip Cet via Emacs development discussions.
2024-12-22 17:56 ` Gerd Möllmann
2024-12-22 19:11 ` Óscar Fuentes
2024-12-23 0:05 ` Pip Cet via Emacs development discussions.
2024-12-23 1:00 ` Óscar Fuentes
2024-12-24 22:34 ` Pip Cet via Emacs development discussions.
2024-12-25 4:25 ` Freezing frame with igc Gerd Möllmann
2024-12-25 11:19 ` Pip Cet via Emacs development discussions.
2024-12-25 11:55 ` Óscar Fuentes
2024-12-23 3:42 ` Some experience with the igc branch Gerd Möllmann
2024-12-23 6:27 ` Jean Louis
2024-12-22 20:29 ` Helmut Eller
2024-12-22 20:50 ` Gerd Möllmann
2024-12-22 22:26 ` Pip Cet via Emacs development discussions.
2024-12-23 3:23 ` Gerd Möllmann
[not found] ` <m234ieddeu.fsf_-_@gmail.com>
[not found] ` <87ttaueqp9.fsf@protonmail.com>
[not found] ` <m2frme921u.fsf@gmail.com>
[not found] ` <87ldw6ejkv.fsf@protonmail.com>
[not found] ` <m2bjx2h8dh.fsf@gmail.com>
2024-12-23 14:45 ` Make Signal handling patch platform-dependent? Pip Cet via Emacs development discussions.
2024-12-23 14:54 ` Gerd Möllmann
2024-12-23 15:11 ` Eli Zaretskii
2024-12-23 13:35 ` Some experience with the igc branch Eli Zaretskii
2024-12-23 14:03 ` Discussion with MPS people Gerd Möllmann
2024-12-23 14:04 ` Gerd Möllmann
2024-12-23 15:07 ` Some experience with the igc branch Pip Cet via Emacs development discussions.
2024-12-23 15:26 ` Gerd Möllmann
2024-12-23 16:03 ` Pip Cet via Emacs development discussions.
2024-12-23 16:44 ` Eli Zaretskii
2024-12-23 17:16 ` Pip Cet via Emacs development discussions.
2024-12-23 18:35 ` Eli Zaretskii
2024-12-23 18:48 ` Gerd Möllmann
2024-12-23 19:25 ` Eli Zaretskii
2024-12-23 20:30 ` Benjamin Riefenstahl
2024-12-23 23:39 ` Pip Cet via Emacs development discussions.
2024-12-24 12:14 ` Eli Zaretskii
2024-12-24 13:18 ` Pip Cet via Emacs development discussions.
2024-12-24 13:42 ` Benjamin Riefenstahl
2024-12-24 3:37 ` Eli Zaretskii
2024-12-24 8:48 ` Benjamin Riefenstahl
2024-12-24 13:52 ` Eli Zaretskii
2024-12-24 13:54 ` Benjamin Riefenstahl
2024-12-23 17:44 ` Gerd Möllmann
2024-12-23 19:00 ` Eli Zaretskii
2024-12-23 19:37 ` Eli Zaretskii
2024-12-23 20:49 ` Gerd Möllmann
2024-12-23 21:43 ` Helmut Eller
2024-12-23 21:49 ` Pip Cet via Emacs development discussions.
2024-12-23 21:58 ` Helmut Eller
2024-12-23 23:20 ` Pip Cet via Emacs development discussions.
2024-12-24 5:38 ` Helmut Eller
2024-12-24 6:27 ` Gerd Möllmann
2024-12-24 10:09 ` Pip Cet via Emacs development discussions.
2024-12-24 4:05 ` Gerd Möllmann
2024-12-24 8:50 ` Gerd Möllmann
2024-12-24 6:03 ` SIGPROF + SIGCHLD and igc Gerd Möllmann
2024-12-24 8:23 ` Helmut Eller
2024-12-24 8:39 ` Gerd Möllmann
2024-12-25 9:22 ` Helmut Eller
2024-12-25 9:43 ` Gerd Möllmann
2024-12-24 13:05 ` Eli Zaretskii
2024-12-25 10:46 ` Helmut Eller
2024-12-25 12:45 ` Eli Zaretskii
2024-12-24 12:54 ` Eli Zaretskii
2024-12-24 12:59 ` Gerd Möllmann
2024-12-27 8:08 ` Helmut Eller
2024-12-27 8:51 ` Eli Zaretskii
2024-12-27 14:53 ` Helmut Eller
2024-12-27 15:09 ` Pip Cet via Emacs development discussions.
2024-12-27 15:19 ` Eli Zaretskii
2024-12-27 8:55 ` Gerd Möllmann
2024-12-27 15:40 ` Helmut Eller
2024-12-27 15:53 ` Gerd Möllmann
2024-12-27 11:36 ` Pip Cet via Emacs development discussions.
2024-12-27 16:14 ` Helmut Eller
2024-12-28 10:02 ` Helmut Eller
2024-12-28 10:50 ` Eli Zaretskii
2024-12-28 13:52 ` Helmut Eller
2024-12-28 14:25 ` Eli Zaretskii
2024-12-28 16:46 ` Helmut Eller
2024-12-28 17:35 ` Eli Zaretskii
2024-12-28 18:08 ` Helmut Eller [this message]
2024-12-28 19:00 ` Eli Zaretskii
2024-12-28 19:28 ` Helmut Eller
2024-12-28 19:32 ` Pip Cet via Emacs development discussions.
2024-12-28 19:51 ` Helmut Eller
2024-12-28 20:43 ` Pip Cet via Emacs development discussions.
2024-12-29 5:44 ` Eli Zaretskii
2024-12-23 23:37 ` Some experience with the igc branch Pip Cet via Emacs development discussions.
2024-12-24 4:03 ` Gerd Möllmann
2024-12-24 10:25 ` Pip Cet via Emacs development discussions.
2024-12-24 10:50 ` Gerd Möllmann
2024-12-24 13:15 ` Eli Zaretskii
2024-12-24 12:26 ` Eli Zaretskii
2024-12-24 12:56 ` Gerd Möllmann
2024-12-24 13:19 ` Pip Cet via Emacs development discussions.
2024-12-24 13:38 ` Gerd Möllmann
2024-12-24 13:46 ` Eli Zaretskii
2024-12-24 14:12 ` Gerd Möllmann
2024-12-24 14:40 ` Eli Zaretskii
2024-12-25 4:56 ` Gerd Möllmann
2024-12-25 12:19 ` Eli Zaretskii
2024-12-25 12:50 ` Gerd Möllmann
2024-12-25 13:00 ` Eli Zaretskii
2024-12-25 13:08 ` Gerd Möllmann
2024-12-25 13:26 ` Eli Zaretskii
2024-12-25 14:07 ` Gerd Möllmann
2024-12-25 14:43 ` Helmut Eller
2024-12-25 14:59 ` Eli Zaretskii
2024-12-25 20:44 ` Helmut Eller
2024-12-26 6:29 ` Eli Zaretskii
2024-12-26 8:02 ` Helmut Eller
2024-12-26 9:32 ` Eli Zaretskii
2024-12-26 12:24 ` Helmut Eller
2024-12-26 15:23 ` Eli Zaretskii
2024-12-26 23:29 ` Paul Eggert
2024-12-27 7:57 ` Eli Zaretskii
2024-12-27 19:34 ` Paul Eggert
2024-12-28 8:06 ` Eli Zaretskii
2024-12-28 20:44 ` Paul Eggert
2024-12-29 5:47 ` Eli Zaretskii
2024-12-25 15:02 ` Gerd Möllmann
2024-12-25 13:09 ` Eli Zaretskii
2024-12-25 13:46 ` Gerd Möllmann
2024-12-25 14:37 ` Eli Zaretskii
2024-12-25 14:57 ` Gerd Möllmann
2024-12-25 15:28 ` Eli Zaretskii
2024-12-25 15:49 ` Gerd Möllmann
2024-12-25 17:26 ` Eli Zaretskii
2024-12-26 5:25 ` Gerd Möllmann
2024-12-26 7:43 ` Eli Zaretskii
2024-12-26 7:57 ` Gerd Möllmann
2024-12-26 11:56 ` Eli Zaretskii
2024-12-26 15:27 ` Stefan Kangas
2024-12-26 19:51 ` Gerd Möllmann
2024-12-27 9:45 ` Gerd Möllmann
2024-12-27 13:56 ` Gerd Möllmann
2024-12-27 15:01 ` Pip Cet via Emacs development discussions.
2024-12-27 15:28 ` Eli Zaretskii
2024-12-27 15:47 ` Pip Cet via Emacs development discussions.
2024-12-27 16:18 ` Gerd Möllmann
2024-12-28 9:10 ` Stefan Kangas
2024-12-28 9:20 ` Gerd Möllmann
2024-12-28 9:24 ` Gerd Möllmann
2024-12-27 16:05 ` Gerd Möllmann
2024-12-27 17:00 ` Pip Cet via Emacs development discussions.
2024-12-27 16:37 ` Eli Zaretskii
2024-12-27 17:26 ` Pip Cet via Emacs development discussions.
2024-12-27 19:12 ` Gerd Möllmann
2024-12-28 7:36 ` Eli Zaretskii
2024-12-28 12:35 ` Pip Cet via Emacs development discussions.
2024-12-28 12:51 ` Gerd Möllmann
2024-12-28 13:13 ` Eli Zaretskii
2024-12-28 9:29 ` Eli Zaretskii
2024-12-28 13:12 ` Pip Cet via Emacs development discussions.
2024-12-28 14:08 ` Eli Zaretskii
2024-12-27 18:21 ` Gerd Möllmann
2024-12-27 19:23 ` Pip Cet via Emacs development discussions.
2024-12-27 20:28 ` Gerd Möllmann
2024-12-28 10:39 ` Eli Zaretskii
2024-12-28 11:07 ` Gerd Möllmann
2024-12-28 11:23 ` Gerd Möllmann
2024-12-28 14:04 ` Pip Cet via Emacs development discussions.
2024-12-28 14:25 ` Gerd Möllmann
2024-12-28 16:27 ` Eli Zaretskii
2024-12-28 6:08 ` Gerd Möllmann
2024-12-25 17:40 ` Pip Cet via Emacs development discussions.
2024-12-25 17:51 ` Eli Zaretskii
2024-12-26 15:24 ` Pip Cet via Emacs development discussions.
2024-12-26 15:57 ` Eli Zaretskii
2024-12-27 14:34 ` Pip Cet via Emacs development discussions.
2024-12-27 15:58 ` Eli Zaretskii
2024-12-27 16:42 ` Pip Cet via Emacs development discussions.
2024-12-28 18:02 ` Eli Zaretskii
2024-12-28 21:05 ` Pip Cet via Emacs development discussions.
2024-12-29 6:15 ` Eli Zaretskii
2024-12-26 5:27 ` Gerd Möllmann
2024-12-26 5:29 ` Gerd Möllmann
2024-12-24 21:18 ` Pip Cet via Emacs development discussions.
2024-12-25 5:23 ` Gerd Möllmann
2024-12-25 10:48 ` Pip Cet via Emacs development discussions.
2024-12-25 13:40 ` Stefan Kangas
2024-12-25 17:03 ` Pip Cet via Emacs development discussions.
2024-12-26 5:22 ` Gerd Möllmann
2024-12-26 7:33 ` Eli Zaretskii
2024-12-26 8:02 ` Gerd Möllmann
2024-12-26 15:50 ` Stefan Kangas
2024-12-26 16:13 ` Eli Zaretskii
2024-12-26 19:40 ` Gerd Möllmann
2024-12-26 17:01 ` Pip Cet via Emacs development discussions.
2024-12-26 19:45 ` Gerd Möllmann
2024-12-26 20:05 ` Eli Zaretskii
2024-12-26 20:12 ` Gerd Möllmann
2024-12-26 16:12 ` Stefan Kangas
2024-12-26 17:05 ` Eli Zaretskii
2024-12-25 11:48 ` Helmut Eller
2024-12-25 11:58 ` Gerd Möllmann
2024-12-25 12:52 ` Eli Zaretskii
2024-12-25 12:31 ` Eli Zaretskii
2024-12-25 12:54 ` Gerd Möllmann
2024-12-24 12:11 ` Eli Zaretskii
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=8734i7of3h.fsf@gmail.com \
--to=eller.helmut@gmail.com \
--cc=acorallo@gnu.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=gerd.moellmann@gmail.com \
--cc=ofv@wanadoo.es \
--cc=pipcet@protonmail.com \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.