Я использую мьютекс, у меня есть aq в инициализации.Пожалуйста, ведите меня - PullRequest
0 голосов
/ 27 октября 2011

Я использую много мьютексов pthread. Моя программа использует их, и затем, в определенный момент, я хочу сделать мягкий перезапуск моей программы, я повторяю «Мягкий перезапуск», а не жесткий перезапуск. Под мягким перезапуском я подразумеваю, что я не буду выходить из программы, я запускаю программу еще раз, используя оператор "goto", который запускается в начале программы, чтобы снова запустить программу.

Я сомневаюсь, что если я использую мьютекс в своей программе и в середине пути я получаю мягкий перезапуск, где я инициализирую этот мьютекс. Будут ли они инициализированы независимо от того, где они были в программе.

Я проверил с обычными типами данных, такими как "int", они инициализируются в соответствии с тем, что мы указали при перезапуске. Но я хочу, чтобы вы были уверены в мьютексе.

1 Ответ

2 голосов
/ 27 октября 2011

Если вы вызовете для них 'pthread_mutex_init', они будут инициализированы, как если бы они были новыми мьютексами.Просто убедитесь, что ни один поток не имеет или не может получить к ним доступ, когда вы пытаетесь повторно инициализировать их.

Однако ваше представление о мягком перезапуске звучит для меня немного странно.Если бы мне пришлось реализовать такую ​​вещь (и я бы сопротивлялся этому до самых краев Земли), я бы сделал это, избавившись от всех предыдущих объектов и создав новые, а не пытаясь повторно использовать оставшуюся часть предыдущего.бежать.

...