Sadece doğrudan libuv soramazsın V8 veya Libuv ya da her türlü
sorabilirsiniz, ama kesinlikle aktif zamanlayıcılar kaç bilmesi mümkün teklif ederse iyi olurdu.
Bunu yapmak için, tüm etkin tanıtıcıları almak için uv_walk
geçerli bir döngü ile çağırabilirsiniz. Sonra, her bir tanıtıcıyı verilen geri çağrıyla kontrol edebilir ve type
(uv_handle_type
türünde) veri üyesinin UV_TIMER
'a eşit olduğu sayıları sayabilirsiniz.
Sonuç, etkin zamanlayıcıların sayısıdır.
Kulp veri yapısı hakkında daha ayrıntılı bilgi için documentation'a bakın. aşağıdaki gibi
struct Counter {
static int count;
static void callback(uv_handle_t* handle, void*) {
if(handle.type == uv_handle_type::UV_TIMER) count++;
}
};
Sen kullanabilirsiniz:
Önemsiz bir örnek olarak, aşağıdaki yapıyı düşünün Tabii
Counter::count = 0;
uv_walk(my_loop_ptr, &Counter::callback);
// Counter::count indicates how many active timers are running on the loop
, bu bir üretime hazır kodu değil . Her neyse, umarım önerilen çözüm hakkında bir fikir verir. Libu belgeleri için here adresine bakın.
SetTimeout yönteminin, bir sayacı gereksinimlerinize uyacak şekilde yöneten bir sarıcı ile üzerine yazdığına inanıyor musunuz? –
@DavidRissatoCruz, bu işe yarayabilir, evet, ayrıca, aynı zamanda –