From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Andrey Fomichev" To: "ALT Linux Sisyphus discussion list" Subject: RE: [sisyphus] Re: sedna package Date: Wed, 4 May 2005 16:14:13 +0400 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) In-Reply-To: <20050504120633.GB29536@master.mivlgu.local> X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Importance: Normal X-SpamTest-Version: SMTP-Filter Version 2.0.0 [0125], KAS/Release SMTP-Filter Version 2.0.0 [0125], KAS/Release X-Spamtest-Info: Pass through X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2005 12:14:25 -0000 Archived-At: List-Archive: > 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?