У меня есть программа (приложение C ++), в которой несколько потоков вызывают функцию handle_info (), написанную в модуле erlang (genserver).
Замечено, что если поток-1 отправляет кучу сообщений(скажем, 1000) к этому handle_info (), и в то же время, если Thread-2 также отправляет 1 или 2 сообщения одновременно на handle_info (), наблюдается, что handle_info () выполняет сообщения, отправленные Thread-2 только когда он заканчивает сообщения, отправленные Thread-1.
Я прочитал, что handle_info () является асинхронным, но в этом случае я считаю, что он работает как синхронный метод.
Я делаю что-то не так?
Примечание:
Thread-1 и Thread-2 порождаются одним и тем же модулем erlang, а функция потока - из приложений C ++.
Функция потока вызывает handle_info () с использованием функции enif_send () (erl_nif.h).