ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexander Bokovoy <ab@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] Как пройти сборку если требуется /dev/shm ?
Date: Wed, 31 Dec 2014 15:57:14 +0200
Message-ID: <CAG0OwAHW8+ym1WWCeCgUvXGUdPMMi_Vf=Htyb4=eW8ctqNSYPw@mail.gmail.com> (raw)
In-Reply-To: <54A2AE77.9060205@altlinux.ru>

2014-12-30 15:53 GMT+02:00 Andrew V. Stepanov <stanv@altlinux.ru>:
>
> Как выяснилось, Python тут ни причем.
>
> Рассмотрим компьютер в котором один однопоточный процессор, с одним ядром.
>
> И рассмотрим семафор Posix.
>
> $ cat 1.c
> #include <semaphore.h>
> #include <stdio.h>
> #include <errno.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <sys/types.h>
>
> #include <sys/stat.h>
> #include <fcntl.h>
> #include <sys/mman.h>
>
> int main(int argc, char **argv)
> {
>         sem_t *mutex;
>
>         if ((mutex = sem_open("mysemaphore", O_CREAT, 0644, 1)) ==
> SEM_FAILED) {
>                 perror("semaphore initilization");
>                 exit(1);
>         }
>
>         exit(0);
> }
>
>
>
> $ gcc 1.c -lpthread
>
> $ ./a.out
> semaphore initilization: Function not implemented
>
> Т.е. POSIX семафоры в Linux хотят /dev/shm
>
> Хотеть семафор даже на однопроцессорной машине __вполне законно__.
>
>
> Python multiprocessing модуль написан с использованием POSIX семафоров, что
> также вполне законно.
>
>
> Что видно:
> File "/usr/src/RPM/BUILD/bro-2.3.1/aux/btest/btest", line 198, in
> runSubprocess
>     q = multiprocessing.Queue()
>   File "/usr/lib64/python2.7/multiprocessing/__init__.py", line 218, in
> Queue
>     return Queue(maxsize)
>   File "/usr/lib64/python2.7/multiprocessing/queues.py", line 63, in
> __init__
>     self._rlock = Lock()
>   File "/usr/lib64/python2.7/multiprocessing/synchronize.py", line 147, in
> __init__
>     SemLock.__init__(self, SEMAPHORE, 1, 1)
>   File "/usr/lib64/python2.7/multiprocessing/synchronize.py", line 75, in
> __init__
>     sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
> OSError: [Errno 38] Function not implemented
>
>
> Семафоры нужны даже на однопоточных машинах.
> А POSIX семафоры хотят /dev/shm
>
> В конкретно в моем случае:
>
> http://git.altlinux.org/gears/p/python.git?p=python.git;a=blob;f=Python/Modules/_multiprocessing/semaphore.c;h=b9e8f345fbb1cd70918fb960377dadaea46fd8f3;hb=55198a185eef2089e6f4eba8654c5d9047a3c3a7#l195
>
> Вывод: Hasher запрещает использование POSIX named semaphore.
Учитывая, что /dev/shm может быть смонтировано в приватное адресное
пространство на современных ядрах, ничего не мешает хэшеру
использовать /dev/shm для сборки приложений.

-- 
/ Alexander Bokovoy

  reply	other threads:[~2014-12-31 13:57 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-29 14:32 Andrew V. Stepanov
2014-12-30 13:53 ` Andrew V. Stepanov
2014-12-31 13:57   ` Alexander Bokovoy [this message]
2015-01-01 20:41   ` Dmitry V. Levin
2015-01-12 12:30     ` Anton Farygin
2015-01-12 13:55       ` Dmitry V. Levin
2015-01-12 14:15         ` Dmitry V. Levin
2015-01-12 19:12           ` Anton Farygin
2015-01-12 19:36             ` Dmitry V. Levin
2015-01-13 11:55               ` Anton Farygin
2015-01-16 14:54                 ` Dmitry V. Levin
2015-01-16 19:07                   ` Anton Farygin
2015-01-16 19:54                     ` Dmitry V. Levin
2015-01-16 20:06                       ` Anton Farygin

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='CAG0OwAHW8+ym1WWCeCgUvXGUdPMMi_Vf=Htyb4=eW8ctqNSYPw@mail.gmail.com' \
    --to=ab@altlinux.org \
    --cc=devel@lists.altlinux.org \
    /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

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git