[sisyphus] Re: sedna package

Andrey Fomichev =?iso-8859-1?q?fomichev_=CE=C1_ispras=2Eru?=
Ср Май 4 16:14:13 MSD 2005


> On Wed, May 04, 2005 at 02:52:06PM +0400, Andrey Fomichev wrote:
> > - разделяемая память
> > В принципе проблема понятна и решение тоже.
> > Но! В Седне как раз разделяемая память живет пока живет сервер. Так что
> > проблема проявляется, когда останавливается сервер. А именно,
> выполняется
> > shmdt (сервер делает deattach и память автоматом закрывается) a затем
> > выполняется shmctl (сервер пытается закрыть уничтожить память) -- и тут
> > проявляется ошибка (памяти уже нет).
>
> В таком случае можно выполнять сначала shmctl(IPC_RMID), и только после
> этого - shmdt().  По крайней мере в Linux IPC_RMID только помечает сегмент
> для удаления, но реальное удаление происходит только после отсоединения
> всех процессов.

Так не очень хочется делать по причине того, что Седна работает еще и под
Windows. Соответственно для shmdt и shmctl есть обертки, которые под Windows
реализованы по-другому (естественно). И переставлять вызовы оберток местами
неправильно.
Эх, неужели нельзя по-простому определить вендора Linux?





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