ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] Как работает fork()?
@ 2004-08-25  9:11 AD
  2004-08-25 10:20 ` Макс
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: AD @ 2004-08-25  9:11 UTC (permalink / raw)
  To: Community

Привет!

Поясните как работает fork().

Если не ошибаюсь, в результате вызова, дублируются, в частности, файловые
дескрипторы.
Что будет если:

1. Файл открыт для эксклюзивного доступа. Вторая копия сможет работать с
файлом?

2. Где-то в расшареной памяти есть мьютекс - используется несколькими
процессами. Процесс захватил мьютекс и вызвал fork. Каково будет состояние
мьютекса во второй копии.

3. В процессе 2 потока. Один поток ожидает получения данных: int
result=read(h, .. , .. ); Данные не готовы и драйвер устройства усыпляет
поток:
static DECLARE_WAIT_QUEUE_HEAD(wq);
...
  interruptible_sleep_on(&wq);
В это время второй поток делает вызов fork. Что будет содержать result во
второй копии?

-- 
AD



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-08-27  7:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-25  9:11 [Comm] Как работает fork()? AD
2004-08-25 10:20 ` Макс
2004-08-26  8:17 ` php-coder
2004-08-26  9:48   ` Re[2]: " AD
2004-08-27  7:57 ` Anton V. Boyarshinov

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git