GoGPT Best VPN GoSearch

Ulubiona usługa OnWorks

rrdthreads - Online w chmurze

Uruchom rrdthreads w darmowym dostawcy hostingu OnWorks na Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

To polecenie rrdthreads, które można uruchomić w darmowym dostawcy hostingu OnWorks, korzystając z jednej z wielu naszych darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


rrdthreads — Postanowienia dotyczące łączenia biblioteki RRD w celu wykorzystania jej w programach wielowątkowych

STRESZCZENIE


Używanie biblioteki librrd w programach wielowątkowych wymaga pewnych dodatkowych środków ostrożności, ponieważ RRD
biblioteka w swojej oryginalnej formie nie była wcale bezpieczna dla wątków. Ten dokument opisuje
wymagania i pułapki na drodze do wykorzystania wielowątkowej wersji biblioteki librrd w Twoim
własne programy. Daje również wskazówki dla przyszłego rozwoju RRD, aby zachować wątek biblioteki-
bezpieczny.

Obecnie tylko niektóre operacje RRD są implementowane w sposób bezpieczny dla wątków. Wszystkie kończą się na
zwykły sufiks ""_r"".

OPIS


Aby używać biblioteki librrd w programach wielowątkowych należy:

· Połącz z biblioteka_th zamiast biblioteka (podczas linkowania użyj „-lrrd_th”)

· Używaj funkcji „_r” zamiast normalnych funkcji API

· Nie używaj żadnych specyfikacji czasu w stylu at. Analiza składniowa takich specyfikacji czasu jest
strasznie nie jest bezpieczne dla wątków.

· Nigdy nie używaj funkcji innych niż *"_r", chyba że wyraźnie udokumentowano, że funkcja ta jest
bezpieczny dla stóp.

· Każdy wątek POWINIEN wywołać „rrd_get_context()” przed pierwszym wywołaniem dowolnego wątku „librrd_th”
funkcja w celu skonfigurowania danych specyficznych dla wątku. Nie jest to ściśle wymagane, ale
jest to jedyny sposób sprawdzenia, czy przydział pamięci może zostać wykonany za pomocą tej funkcji.
W przeciwnym wypadku program może zakończyć działanie z błędem SIGSEGV w przypadku braku pamięci.

· Zawsze wywołuj „rrd_error_clear()” przed każdym wywołaniem biblioteki. W przeciwnym razie wywołanie
może się nie powieść z powodu wcześniejszego błędu.

UWAGI DLA DRR WKŁADOWCY
Od tej pory przy opracowywaniu RRD należy zachować pewne środki ostrożności:

· Używaj tylko funkcji bezpiecznych dla wątków w kodzie biblioteki. Wiele często używanych funkcji libc nie jest
thread-safe. Należy zachować ostrożność w następujących sytuacjach lub podczas korzystania z następującej biblioteki
Funkcje:

· Należy unikać bezpośrednich wywołań „strerror()”: zamiast tego należy używać „rrd_strerror()”.
wyświetla komunikat o błędzie dla każdego wątku.

· Rodziny funkcji „getpw*”, „getgr*”, „gethost*” (oraz kilka innych funkcji „get*”)
funkcje) nie są bezpieczne dla wątków: użyj wariantów *"_r"

· Funkcje czasu: „asctime”, „ctime”, „gmtime”, „localtime”: użyj wariantów *„_r”

· „strtok”: użyj „strtok_r”

· „tmpnam”: użyj „tmpnam_r”

· Wiele innych (zobacz dokumentację)

· Plik nagłówkowy o nazwie rrd_is_thread_safe.h jest dostarczany w wersji współpracującej z GNU
Preprocesor języka C do „zatruwania” niektórych z najpopularniejszych funkcji niebędących bezpiecznymi dla wątków za pomocą
Dyrektywa „#pragma GCC poison”. Wystarczy dołączyć ten nagłówek do plików źródłowych, które chcesz
zachowaj bezpieczeństwo wątków.

· Nie wprowadzaj zmiennych globalnych!

Jeśli naprawdę musisz użyć zmiennej globalnej, możesz dodać nowe pole do
Struktura „rrd_context” i modyfikacja rrd_error.c, rrd_thread_safe.c oraz
rrd_non_thread_safe.c

· Nie używaj „getopt” ani „getopt_long” w *„_r” (ani bezpośrednio, ani pośrednio).

„getopt” używa zmiennych globalnych i zachowuje się nieprawidłowo w aplikacji wielowątkowej, gdy
wywoływane jednocześnie. Zamiast tego zapewnij funkcję *_r przyjmującą wszystkie opcje jako funkcję
parametry. Możesz podać argumenty argc i **argv dla argumentów o zmiennej długości
listy. Zobacz „rrd_update_r” jako przykład.

· Nie używaj funkcji „rrd_parsetime”!

Używa wielu zmiennych globalnych. Możesz go używać w funkcjach, które nie są do tego przeznaczone.
bezpieczne dla wątków, jak w funkcjach, które opakowują wersję „_r” pewnej operacji (np.
„rrd_create”, ale nie w „rrd_create_r”)

OBECNIE WDROŻONE WĄTEK BEZPIECZNE FUNKCJE
Obecnie istnieją bezpieczne dla wątków warianty „rrd_update”, „rrd_create”, „rrd_dump”,
„rrd_info”, „rrd_last” i „rrd_fetch”.

Użyj rrdthreads online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad




×
reklama
❤️Zrób zakupy, zarezerwuj lub kup tutaj — bezpłatnie, co pomaga utrzymać bezpłatne usługi.