LINUX.ORG.RU

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

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

Несколько замечаний.

ссылку на документ, обосновывающий, почему использовать room плохо.

Плохо в не main thread без понимания некоторых деталей.
Sbcl manual/Threading

Large amounts of the SBCL library have not been inspected for thread-safety. Some of the obviously unsafe areas have large locks around them, so compilation and fasl loading, for example, cannot be parallelized. Work is ongoing in this area.

Очевидный текст в очевидном месте.

room - это просто одна функция из стандарта

a) Стандарт описывает работу room в однопоточном режиме. Стандарт вобще не описывает особености многопочной работы. И в SBCL в таком режиме тоже все работает.
б) В repl-е который main thred slime/swank - room тоже работает. При том что swank вобще обвешан служебными нмтями как елка гирляндами. Это основной подход к работе c room и если бы он не работал то sbcl-team уже бы задолбали:) в) Может ли навернутся фукция определяется не ее стандартностью, а отдельными критериями описаными в главе safe call. И вот

(reduce #'+ '(1 2 3 ...))
функция которая работает с лексически-замкнутыми объектами safe по стандарту и в одновременно thread-safe по соображеням компилятора. А вот именно room в обоих случаях нет. Почему это же тебе уже не должно быть интересно. Вобще прикладникам это неважно просто пользуется готовым соображенями - туда не ходи. молотком по пальцу не стукай:)
Но когда человек не может уточнить такие банальные вещи в стадарте или доках. Или банально доказвает несуществование уже сложвшей практики. Но внезапео становится спецом по транслятором да еще с гонором. Это вот забавно.

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

Несколько замечаний.

ссылку на документ, обосновывающий, почему использовать room плохо.

Плохо в не main thread без понимания некоторых деталей.
Sbcl manual/Threading

Large amounts of the SBCL library have not been inspected for thread-safety. Some of the obviously unsafe areas have large locks around them, so compilation and fasl loading, for example, cannot be parallelized. Work is ongoing in this area.

Очевидный текст в очевидном месте.

room - это просто одна функция из стандарта

a) Стандарт описывает работу room в однопоточном режиме. Стандарт вобще не описывает особености многопочной работы. И в SBCL в таком режиме тоже все работает.
б) В repl-е который main thred slime/swank - room тоже работает. При том что swank вобще обвешан служебными нмтями как елка гирляндами. Это основной подход к работе c room и если бы он не работал то sbcl-team уже бы задолбали:) в) Может ли навернутся фукция определяется не ее стандартностью, а отдельными критериями описаными в главе safe call. И вот

(reduce #'+ '(1 2 3 ...))[/url] функция которая работает с лексически-замкнутыми объектами safe по стандарту и в одновременно thread-safe по соображеням компилятора. А вот именно room в обоих случаях нет. Почему это же тебе уже не должно быть интересно. Вобще прикладникам это неважно просто пользуется готовым соображенями - туда не ходи. молотком по пальцу не стукай:)[br]
Но когда человек не может уточнить такие банальные вещи в стадарте или доках. Или банально доказвает несуществование уже сложвшей практики. Но внезапео становится спецом по транслятором да еще с гонором. Это вот забавно.