VPATH = a:a/b:a/b/c
OUTS = ./outs/prog1.out ./outs/prog2.out ./outs/prog3.out
all: $(OUTS)
outs/%.out : %.c
@echo compile $< to $@
gcc $< -o $@
OUTS = $(patsubst %.c,outs/%.out,$(SRCS))
), то её можно было бы использовать для генерации зависимостей без использования рекурсивного макроса. Для приведённого примера:outs/%.out: %.c
@echo compile $< to $@
gcc $< -o $@
в RISC такой аппаратной команды в принципе не может быть.
в современных контроллерах нет разделения на память команд и память данных
тут гонка на чтении
count
как хочет, потому что другие потоки к нему не обращаются. Более того, если поток освободит мьютекс, а потом захочет захватить его обратно будучи на том же процессоре, он гарантированно увидит, что он не является владельцем. Вот чтобы гарантировать, что он увидит, что он не является владельцем будучи на другом процессоре нужен барьер чтения перед этой проверкой. Ну и аналогично, когда вледелец мьютекса только что захвативший его на одном CPU мигрирует на другой CPU и захватывает его повторно тот же самый барьер гарантирует, что условие проверки владения сработает правильно.Нужен барьер или атомарные операции.
Отсюда и появление ошибки.
sed -e "s/[,']//g"
, но ты заэкранировал двойные. sed -e s/[,\']//g
И да, context switch — это достаточно тяжелая операция…Первое, что приходит в голову — излишнее число прерываний от сетевой карты.
откуда берется этот "потолок"
что мешает ему подрасти еще немножко :)
Герман, если не
./a/b/outs/prog2.out
, а./outs/a/b/prog2.out
-- то да, можно