Описание тега reentrancy

Повторное вхождение обычно относится к подпрограммам, функциям, методам и мьютексам. Подпрограмма считается реентерабельной, если ее можно безопасно вызвать до завершения предыдущего вызова.
2 ответа

Segfault на srandom_r

Я в своем уме. Этот тривиальный код дает мне Segfault, что может быть не так?? struct random_data *qq; qq = calloc(50, sizeof(struct random_data)); srandom_r(time(NULL), qq); Теперь, если я изменю это так, это работает: struct random_data qq; srando…
02 сен '13 в 09:13
1 ответ

KVO с семантикой Run-to-Completion - возможно ли это?

Недавно я столкнулся с проблемами повторного входа в КВО. Чтобы визуализировать проблему, я хотел бы показать минимальный пример. Рассмотрим интерфейс AppDelegate учебный класс @interface AppDelegate : UIResponder <UIApplicationDelegate> @prop…
0 ответов

Предотвращение повторного входа и обеспечение согласованного состояния

Допустим, у меня есть C API, который выглядит так: // configure various parameters int set_option(const char* name, const char* value); // callback invoked during long running operation typedef int (*callback_t)(void* whatever); // start a long runn…
06 ноя '11 в 02:45
1 ответ

Windows: как порождать потоки из (NDIS) драйвера ядра?

Какая функция рекомендуется для создания нового потока в контексте NDIS5/6? Ищите что-то, что гарантированно будет работать при IRQL=PASSIVE (например, без bsods из ничего); путем быстрого осмотра ndis.h содержание, ничего не нашел. Кроме того, план…
05 янв '12 в 19:38
1 ответ

Python: Как создать менеджер контекста для безопасного одновременного входа, который отличается в каждом контексте

Я хочу иметь объект conManager это экземпляр диспетчера контекста с повторным входом, так что всякий раз, когда я вхожу и выхожу из его контекста, он печатает число, но число должно быть на единицу больше, чем номер предыдущего контекста (начиная с …
14 дек '17 в 08:25
2 ответа

Повторный вход или нет с этим кодом NetBSD

Я изучаю "чтение кода", читая фрагменты исходного кода NetBSD.(для тех, кто заинтересован, я читаю ) И я нашел эту функцию: /* convert IP address to a string, but not into a single buffer */ char * naddr_ntoa(naddr a) { #define NUM_BUFS 4 static int…
20 сен '12 в 06:05
0 ответов

Android метод NDK имеет проблему повторного входа

Это мой метод NDK: void FrameReceived(int width, int height, const char *rawImageBytes, int size, jboolean remote) { //LOGE(".... **** ....FrameReceived Begin = %d", size); if(size == 0) return; jboolean isAttached; JNIEnv *env; jint jParticipant; j…
3 ответа

Потоки и статические методы в C#

Вот бессмысленный метод расширения в качестве примера: public static class MyExtensions { public static int MyExtensionMethod(this MyType e) { int x = 1; x = 2; return x } } Скажем, поток выполнения завершается до строки включительно: x = 2; Затем п…
27 июн '10 в 23:49
2 ответа

Загадочные предупреждения "вычисленное значение не используется" в __atomic_exchange_n

Я разработал реентерабельную функцию, основанную на атомарных встроенных функциях gcc. К сожалению, я получаю загадочные предупреждения о "вычисленных, но не используемых" значениях: $ gcc -c -Wall ss.c ss.c: In function ‘ss_wrapper’: ss.c:87:3: war…
06 сен '15 в 12:42
1 ответ

Сделать существующий код ANSI C потокобезопасным и повторно входящим

Я работаю над старой устаревшей системой ANSI C, которая изобилует множеством глобальных переменных. Я являюсь частью команды, занимающейся рефакторингом существующей кодовой базы, чтобы сделать код повторно входящим и потокобезопасным. Я нашел поле…
03 ноя '13 в 11:10
0 ответов

Эффект от использования обработчика прерываний

Для https://en.wikipedia.org/wiki/Reentrancy_(computing), почему "если функция используется в обработчике прерываний с повторным входом и в функции возникает второе прерывание, вторая подпрограмма будет зависать вечно".? int function() { mutex_lock(…
2 ответа

Повторный вход кода против безопасности потоков

В чем разница между понятиями "повторный вход в код" и "безопасность потоков"? Согласно ссылке, указанной ниже, фрагмент кода может быть одним из них, обоими или ни одним из них. Reentrant и потокобезопасный код Я не был в состоянии понять объяснени…
09 дек '08 в 10:45
2 ответа

pthread: уничтожение глобального статического мьютекса

Этот код был взят из 3-го издания Расширенного программирования в среде UNIX, написанного Ричардом Стивенсом. Это пример того, как сделать реентерабельную версию getenv(), Это показано здесь только в целях обучения. /* Copyright (c) W.R.Stevens */ #…
13 ноя '14 в 00:57
0 ответов

Как я могу приостановить SQLCE-запрос до тех пор, пока к таблице, к которой он обращается, больше не будет обращаться?

У меня есть метод, который запрашивает таблицу для подсчета ее записей. QA обнаружил "крайний случай", когда, если конкретная операция отменяется в определенном порядке и скорости (как можно быстрее), GUI "забывает" об остальных записях в этой табли…
2 ответа

Что такое повторяющийся парсер?

Может кто-то объяснить это мне? В частности разница между: http://github.com/whymirror/greg и http://piumarta.com/software/peg/ Первый является вернувшейся версией позднего.
14 мар '10 в 06:02
2 ответа

Как я могу предотвратить возникновение проблем с DLL, если она используется более одного раза?

Как отмечает Питер Дунихо в своем комментарии, я был зациклен на красной сельди, когда мне следовало сосредоточиться на чем-то другом. Когда я использую Symbol.Barcode.Reader и Symbol.Barcode.ReaderData в одной форме, они работают нормально. Я испол…
30 дек '14 в 21:43
2 ответа

MySQL и PHP: атомарность и повторяемость блока кода PHP, выполняющего два последующих запроса - насколько опасно?

В MySQL я должен проверить, вернул ли запрос select какие-либо записи, если нет, я вставляю запись. Однако я боюсь, что вся операция if-else в сценариях PHP НЕ настолько атомарна, как хотелось бы, то есть в некоторых сценариях она будет прерываться,…
23 июн '10 в 18:19
5 ответов

Функция memcpy() реентерабельна?

Я вызываю некоторые функции C++ внутри обработчика сигнала, и моя программа завершается из-за ошибки сегментации. Когда я проверяю с GDB, функция memcpy(), где я получаю SIGSEGV. Я хотел бы знать, является ли memcpy() реентерабельной функцией или не…
17 мар '11 в 08:09
4 ответа

Можно ли ввести многопоточность в DotNe t без простоты создания новых потоков?

У меня есть цикл из нескольких сотен предметов, которые нужно обработать. Каждый элемент обрабатывается путем условной установки глобального SQLConnection, при котором элемент обрабатывается с использованием этого SQLConnection как части обработки. …
5 ответов

Блокировка повторного входа

Немного помощи, пожалуйста, рассмотрите немного кода ниже. public class Widget { public synchronized void doSomething() { ... } } public class LoggingWidget extends Widget { public synchronized void doSomething() { System.out.println(toString() + ":…
09 июл '09 в 15:37