From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <000701c48a83$8026c5b0$0802a8c0@ivan> From: "AD" To: Date: Wed, 25 Aug 2004 13:11:24 +0400 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 FL-Build: Fidolook 2002 (SL) 6.0.2800.85 - 28/1/2003 19:07:30 X-Spam: Not detected Cc: Subject: [Comm] =?koi8-r?b?68HLINLBws/UwcXUIGZvcmsoKT8=?= X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2004 09:11:17 -0000 Archived-At: List-Archive: List-Post: Привет! Поясните как работает fork(). Если не ошибаюсь, в результате вызова, дублируются, в частности, файловые дескрипторы. Что будет если: 1. Файл открыт для эксклюзивного доступа. Вторая копия сможет работать с файлом? 2. Где-то в расшареной памяти есть мьютекс - используется несколькими процессами. Процесс захватил мьютекс и вызвал fork. Каково будет состояние мьютекса во второй копии. 3. В процессе 2 потока. Один поток ожидает получения данных: int result=read(h, .. , .. ); Данные не готовы и драйвер устройства усыпляет поток: static DECLARE_WAIT_QUEUE_HEAD(wq); ... interruptible_sleep_on(&wq); В это время второй поток делает вызов fork. Что будет содержать result во второй копии? -- AD