'handle_call' Zeitlimit überschritten

8

Ich rufe elixir genserver von der Handle-Info-Funktion in GenServer an, um die Telefonnummer hinzuzufügen, die den Form-Client erhält. Sobald handle_call aufgerufen wird, wird der Besitzerprozess abgestürzt [timeout]. Bitte helfen.

Eine ETS wird global erstellt, um Werte einzufügen, bevor eine der unten genannten Funktionen aufgerufen wird.

%Vor%

Fehler:

%Vor%     
NewBee 08.08.2014, 01:57
quelle

1 Antwort

7

Sie können sich nicht innerhalb eines Anrufs anrufen, wie in Ihrem handle_info-Aufruf von add , der einen Rückruf auf Ihrem gen_server ausführt. Da alle Operationen in einem gen_server sequentiell ablaufen, blockieren Sie sich selbst. Die Lösung sollte darin bestehen, eine einfache private add -Funktion für das Modul zu verwenden und sowohl handle_info als auch handle_call({:add delegate darauf zu haben.

%Vor%     
Chris McCord 08.08.2014, 02:24
quelle

Tags und Links