LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Экзит можно вызывать из любого потока

Все грибы съедобны, но некоторые только один раз.

Вот исходный текст

func Exit(code int) {
	if code == 0 {
		// Give race detector a chance to fail the program.
		// Racy programs do not have the right to finish successfully.
		runtime_beforeExit()
	}
	syscall.Exit(code)
}
Ладно, код у меня не равен нулю. Слава Богу, runtime_beforeExit() для моей задачи пропускаем. Дальше вопрос. syscall.Exit(code) потокобезопасен или нет? А он платформо-зависим. Вроде казалось бы, очевидно, что да. Но где это написано в документации? Вот что я нашёл также на SO:

https://stackoverflow.com/questions/12025640/how-can-i-know-whether-a-linux-s...

Это вопрос про Си. Ответ гласит: наверное да, но смотри доку. Окей, во-первых, рантайм голанга написан на асме и не факт, что он такой же, как на Си. Во-вторых, голанг работает не только под линуксом.

Исходная версия den73, :

Экзит можно вызывать из любого потока

Все грибы съедобны, но некоторые только один раз.

Вот исходный текст

func Exit(code int) {
	if code == 0 {
		// Give race detector a chance to fail the program.
		// Racy programs do not have the right to finish successfully.
		runtime_beforeExit()
	}
	syscall.Exit(code)
}
Ладно, код у меня не равен нулю. Слава Богу, runtime_beforeExit() для моей задачи пропускаем. Дальше вопрос. syscall.Exit(code) потокобезопасен или нет? А он платформо-зависим. Вроде казалось бы, очевидно, что да. Но где это написано в документации? Вот что я нашёл также на SO:

https://stackoverflow.com/questions/12025640/how-can-i-know-whether-a-linux-s...

Это вопрос про Си. Он говорит, наверное да, но смотри доку. Окей, во-первых, рантайм голанга написан на асме и не факт, что он такой же, как на Си. Во-вторых, голанг работает не только под линуксом.