[Kos-dev] Implémentation des sé maphores dans FreeBSD

Thomas Petazzoni kos-dev@enix.org
Tue, 27 May 2003 09:11:57 +0200


This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigBCF93368116DC624BD056453
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit

Hello,

> Certes, mais puisqu'elle reveille, elle doit mettre des choses dans
> cpu_waitqueue -> locker qqch.

Oui, bien sûr, mais là c'est une fonction du scheduler genre
add_thread_to_cpu_waitqueue, qui prend le lock cpu_waitqueue_lock (ou
scheduler_lock), ajoute le thread, et relache le lock.

Ce que je voulais dire, c'est que cette fonction n'étant pas bloquante,
on avait pas besoin de relacher le semaphore_global_lock, le
mutex_global_lock, ou je ne sais quoi.

>     Thomas> Or, pour relacher le lock, on utilise des macros
>     Thomas> spin_unlock qui prennent 2 arguments : le lock, et les
>     Thomas> flags. Et les flags, il faut pas qu'on les sortes de
>     Thomas> n'importe ou, donc faut que le mec nous les passe en
>     Thomas> argument.
> 
> Oui, a voir au niveau de l'implantation, c'est peut-etre pas
> necessaire.

Bin si tu dois relacher le lock proprement, il faut pas se gourer dans
les flags, non ?

J'ai pas encore tout à fait les idées claires sur ce point là,
j'aimerais qu'on approfondisse un peu pour qu'ensuite on puisse
l'implémenter (dans pas trop longtemps de préférence).

Thomas
-- 
PETAZZONI Thomas - thomas DOT petazzoni AT enix DOT org - UIN : 34937744
Web: http://www.enix.org/~thomas/
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7

--------------enigBCF93368116DC624BD056453
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE+0w+99lPLMJjT96cRAl7PAJ0VBvp8i3LyV2LoFxQ8xfbsG4PTOQCgp2VR
fKfPeGRIUPKJl6+urKtekpE=
=RGgl
-----END PGP SIGNATURE-----

--------------enigBCF93368116DC624BD056453--