isolate_pool_executor 1.2.2 isolate_pool_executor: ^1.2.2 copied to clipboard
The Isolate Pool Executor is a tool in Dart for managing concurrent tasks by limiting and reusing isolates to optimize performance.
Version 1.2.2 #
- Fixed the task execution exception when
taskQueueInIsolate
is set totrue
inSingleIsolate
.
Version 1.2.1 #
- In non-release mode (determined by
assert
), the default creation waiting time is changed to 6 seconds. In release mode, it remains unchanged at 3 seconds.
Version 1.2.0 #
- Added a new parameter
onIsolateCreateTimeoutTimesDoNotCreateNew
. If isolate creation times outn
consecutive times, no new isolates will be created, and only the already initialized isolates will be used. If no timeouts occur, the pool will use the isolates withm
cores, along with other cached isolates. - This feature can help alleviate this issue. See the README for more details.
Version 1.1.5 #
- Added the
immediatelyStartedCore
parameter toIsolatePoolExecutor
andIsolatePoolExecutor.newFixedIsolatePool
, allowing customization of the number of isolates that start immediately.
Version 1.1.4 #
- The
isolateValues
in theonIsolateCreated
callback is now non-nullable and will default to an empty map. - Added
isShutdown
to the pool to check ifshutdown
has been called. - Updated the README to include instructions on calling
MethodChannel
from an isolate in Flutter.
Version 1.1.3 #
- The return value of
compute
is now wrapped inTaskFuture
, allowing you to view the currenttaskId
and relatedtag
.
Version 1.1.2 #
- Added support for specifying a
debugLabel
forIsolatePoolExecutor
.
Version 1.1.1 #
- Added a new
onIsolateCreated
parameter, which is called immediately after an isolate is created. This, along withisolateValues
, allows initialization of data for the isolate.
Example: Introducing background isolate channels.
- Interaction with isolates now uses
RawReceivePort
.
Version 1.1.0 #
- Optimized initial isolate startup by directly assigning tasks, reducing one send operation, and improved idle state detection for isolates.
- Added timeout validation for isolate startup due to this known issue.
- Added a parameter
launchCoreImmediately
(defaultfalse
), which starts all core isolates immediately.
Version 1.0.6 #
- Fixed
QueueEmpty
innewCachedIsolatePool
to prevent adding any tasks.
Version 1.0.5 #
- Threw an exception when sending tasks failed.
- Added global exception handling for workers in isolates.
Version 1.0.4 #
- Added common extension methods.
Version 1.0.3 #
- Optimized communication times in
IsolateNoCache
, bringing performance close toIsolate.run
.
Version 1.0.2 #
- Added support for storing
map
values during isolate initialization. - Optimized isolate exit mechanism when
keepAliveTime
is set to 0. - Improved data transfer between isolates.
Version 1.0.1 #
- Refined code structure. When using a single isolate, tasks can be sent directly to the isolate without a queue.
Version 1.0.0 #
- First version completed with 3 common creation methods implemented by default.