1
Gibt es einen Nanoschlaf für Elixir/Erlang da draußen? Erlangs timer.sleep
dauert "nur" Millisekunden und ich suche nach einem kürzeren Schlaf als das.Elixier/Erlang - Nanosleep
Gibt es einen Nanoschlaf für Elixir/Erlang da draußen? Erlangs timer.sleep
dauert "nur" Millisekunden und ich suche nach einem kürzeren Schlaf als das.Elixier/Erlang - Nanosleep
ich in etwas zu tun, wie dies am Ende:
defmodule TimeCheck do
def time_ok(time) do
if :erlang.system_time - time < 10000 do
TimeCheck.time_ok(time)
else
true
end
end
end
Nach http://erlang.org/pipermail/erlang-questions/2007-March/025677.html, war es nicht so etwas wie diese zumindest 2007. Die dort vorgeschlagene Lösung war "busy wait", dh man überprüft die Zeit in einer Schleife solange, bis die Dauer, für die man schlafen möchte, abgelaufen ist. Der Autor des Posts ging schließlich mit der busy Wait Lösung. – Dogbert
Ungefähr wie viele Nanosekunden möchten Sie schlafen? Wenn es winzig ist, könnte beschäftigtes Warten tatsächlich gut genug sein. – Dogbert
Etwas zu beachten: Wie genau muss die Schlafdauer sein? Ich nehme an, dass Erlangs preemptive Scheduler hier eine Speiche in dein Rad setzen könnte. Wenn Sie Pech haben, unterbricht der Scheduler möglicherweise den Prozess mitten in der Warteschleife, und Sie würden viel länger schlafen, als Sie wollten. Abhängig von Ihrem Anwendungsfall ist dies jedoch möglicherweise kein Problem. –