From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 11 Dec 2003 11:57:08 +0200 (EET) From: Denis Ovsienko X-X-Sender: pilot@elefant.dgtu.donetsk.ua To: ALT Linux kernel packages development Subject: Re: [d-kernel] shmctl: Invalid argument In-Reply-To: <20031210094240.6a973096.bga@altlinux.ru> Message-ID: <20031211115018.I29552@elefant.dgtu.donetsk.ua> References: <20031209172932.709fe253.bga@altlinux.ru> <20031209145549.GH835@master.mivlgu.local> <20031210094240.6a973096.bga@altlinux.ru> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=KOI8-R Content-Transfer-Encoding: 8BIT X-BeenThere: devel-kernel@altlinux.ru X-Mailman-Version: 2.1.3 Precedence: list Reply-To: ALT Linux kernel packages development List-Id: ALT Linux kernel packages development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Dec 2003 09:43:54 -0000 Archived-At: List-Archive: List-Post: > Указанное "shmctl: Invalid argument" при правильном > использовании error() появляется, если shmdt(result) > выполнить ДО shmctl(shmid, IPC_RMID, NULL). Естественно. shmctl(IPC_RMID) всего-то и делает, что выставляет флаг, который говорит о том, что при detach от памяти нужно убить её, если счётчик attached процессов нулевой. Естественно, shmid при этом должен быть валидным (и приаттаченным). Этот эффект я доказывал с примером в devel@, когда спорил с ldv@ насчёт hasher, правда, потом выяснилось, что я не понял тему спора. Я специально не исследовал эффекты от shmctl() на детачнутой памяти, но такой порядок работы, мне кажется, никто и заявлял. -- DO4-UANIC