@section asiolinkMTConsiderations Multi-Threading Consideration for Boost ASIO Utilities
-By default Boost ASIO utilities are not thread safe even Boost ASIO tools
+By default Boost ASIO utilities are not thread safe even if Boost ASIO tools
themselves are. When there is no state and the encapsulation is direct
the thread safety property is preserved. Exceptions to the by default
no thread safe are:
@section databaseMTConsiderations Multi-Threading Consideration for Database
-MySQL and PostgreSQL provide connection pools which is used to make
+MySQL and PostgreSQL provide connection pools which are used to make
lease, host and legal log backends thread safe. Cassandra/CQL is
thread safe by design.
by the database engine (the engine selection is done in the schema).
Note the InnoDB engine used by Kea for MySQL databases cancels a transaction
-when a deadlock is detected (rare but possible event) and leaves the charge
-to retry the transaction to the caller.
+when a deadlock is detected (rare but possible event) and leaves the
+responsibility to retry the transaction to the caller.
*/
@section dhcpDatabaseBackendsMTConsiderations Multi-Threading Consideration for DHCP Database Backends
Lease and host database backends including the memfile for leases are Kea
-(i.e. when the multi-threading mode is true) thread safe. This extends
-to legal / forensic log backends but not to config backends which is
-used only for configuration by the main thread with packet processing
-threads stopped so has no thread safety requirements.
+thread safe (i.e. are thread safe when the multi-threading mode is true).
+This extends to legal / forensic log backends but not to config
+backends which is used only for configuration by the main thread with
+packet processing threads stopped so has no thread safety
+requirements.
There are exceptions:
Note for statistics queries it does not make sense to call them with
running packet processing threads so they have no thread safety guarantees.
-Note too the memfile backend is not inter-process safe so must be kept
+Note too that the memfile backend is not inter-process safe so must be kept
private to the Kea server using it.
*/
By default this library is not thread safe, for instance HTTP listeners
and HTTP messages are not thread safe. Exceptions are:
- - HTTP client is Kea (i.e. when the multi-threading mode is treu)
- thread safe.
+ - HTTP client is Kea thread safe (i.e. is thread safe when the
+ multi-threading mode is true).
- date time is thread safe (mainly because its encapsulated POSIX time
is private and read-only, or because all methods are instance const methods
- read-write mutex (header only).
- - signal set: signal handling (please @c isc::process::IOSignalSet instead).
+ - signal set: signal handling (please use @c isc::process::IOSignalSet
+ instead).
- staged values.
- - state model: event-driven deterministic finite state automaton
- (to accept a regular language).
+ - state model: event-driven deterministic finite state machine.
- stop watch: to measure code execution time.
-K// Copyright (C) 2018-2020 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2018-2020 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this