[sisyphus] Shared memory - HELP PLEASE!

Ivan Adzhubey =?iso-8859-1?q?iadzhubey_=CE=C1_rics=2Ebwh=2Eharvard=2Eedu?=
Чт Мар 25 10:05:29 MSK 2004


On Thursday 25 March 2004 01:42 am, Grigory Batalov wrote:
> On Wed, 24 Mar 2004 23:36:15 -0500
>
> Ivan Adzhubey <iadzhubey на rics.bwh.harvard.edu> wrote:
> > Видимо придется все же самому разбираться. Может кто-нибудь поделится
> > исходниками чего-то работающего с shm, что у него самого - работает? Или
> > хотя бы фрагментом. Буду признателен.
>
>   У меня сохранился небольшой тест. Кажется, без ошибок =).
>   Во время sleep(5) запустите ipcs - увидите выделенный 1К.
>
> $ gcc -g -Wall -O2 -o shmtest shmtest.c
> $ ./shmtest &
> $ ipcs
>
> ------ Shared Memory Segments --------
> key        shmid      owner      perms      bytes      nattch     status
> 0x00000000 1245187    bga       700        1048576    1

Спасибо, Григорий!

К сожалению, там все сложнее. Ваша программа работает, и такие простые тесты я 
уже научился сам писать ;). Проблема возникает когда a) есть минимум два 
процесса пользующихся этой памятью (хотя бы по очереди, например форкнутый 
child и его parent) b) используется блокировка (lock)

А хотя нет, погодите! Кажется что-то видно... у вас запрашивается 2K памяти и 
выделяется 2K. А у меня вашей программе выделяется в четыре раза больше:

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x00000000 1736711    ivan      700        4194304    1

Кажется это все-таки баг. Сейчас проверю под другим ядром...

Спасибо!

-- 
Иван




Подробная информация о списке рассылки Sisyphus