• Задача
  • Решение
  • Обсуждение

ReadThroughChain: транзитивность

Транзитивность happens-before: A→B и B→C, значит A→C. Реализуйте readThroughChain: A пишет data и сигналит ab, B передаёт в bc, C ждёт bc и возвращает data.

GolangРешение
func readThroughChain() int {
	var data int
	ab := make(chan struct{})
	bc := make(chan struct{})
	go func() {
		data = 42
		ab <- struct{}{}
	}()
	go func() {
		<-ab
		bc <- struct{}{}
	}()
	<-bc
	return data
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

00:00:00
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки