All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- support threads on
jvm
target
- null analysis issues with Haxe 4.3.x
- ClassCastException with Haxe 4.3.x on JVM target
Null safety: Cannot pass nullable value to not-nullable argument
with Haxe 4.3.x
Unknown identifier : _pollPeriod
- PR#26 add
ThreadPool.pollPeriod
(thanks to onehundredfeet)
- use rest arguments with BackgroundProcess args
- make BackgroundProcess constructor private
- disabled locking/thread support for eval target because of too many platform issues
- refactored Future API
- added class
CompletableFuture
- renamed class
ConstantFuture
toCompletedFuture
- added function
Future.isComplete
- replace field
Future.onResult
with functionFuture.onCompletion
- added class
- refactored Executor API
- replace field
Executor.onResult()
with functionExecutor.onCompletion()
- renamed
TaskFuture.waitAndGet()
toTaskFuture.awaitCompletion()
- renamed
TaskFutureBase
toAbstractTaskFuture
- replace field
BackgroundProcess#kill()
now explicitly kills descendant processes if possible
BackgroundProcess.pid
is not with Java 9+
- method
BackgroundProcess#builder(exe)
- method
BackgroundProcess#create(exe, args)
- method
BackgroundProcess#awaitExitOrKill()
- method
BackgroundProcess#awaitSuccessOrKill()
BackgroundProcess#awaitSuccess()
now returns a boolean indicating if the process finished or is still running
- Fix "Uncaught exception Lock was acquired by another thread!"
- Prevent random premature killing of external processes run via BackgroundProcess
BackgroundProcess#readAll
always returns empty string
- minimum required Haxe version is now 4.2
- type
SynchronizedMap
- Issue #12 memory leak in ThreadPoolExecutor
- Haxe 4.2 support
- compilation error:
EventListenable.hx:36: characters 30-41 : { remove : (hx.concurrent.event.AbstractEventListenable.EVENT -> Void) -> Bool } has no field addIfAbsent
int += AtomicInt
not workingThreads.current
andRLock
not working on HashLink
- compilation error:
- potential race condition when executing
BackgroundProcess
- Warning
untyped __php__ is deprecated.
- Warning
__js__ is deprecated, use js.Syntax.code instead
- minimum required Haxe version is now 4.x
- removed support for old PHP5 target
- renamed
DefaultEventListenable
toAbstractEventListenable
- Use sys.thread API for C# on Haxe4
- Haxe4.RC3 eval compilation error: sys.thread.Thread has no field id
- Issue #4 [haxe4+hl] "Lock was aquired by another thread!"
- [haxe4+hl] ScheduleTools.firstRunAt() returns wrong values
- [haxe4+python] Compile error "Ints.hx:46: lines 46-68 : Float should be Int"
- class
hx.concurrent.thread.BackgroundProcess
- property
Queue#length
- method
ThreadPool#awaitTermination()
- method
ThreadPool#cancelPendingTasks()
- method
ThreadPool#getExecutingTasks()
- method
ThreadPool#getPendingTasks()
- PR-3 Use new
sys.thread
package when possible on Haxe 4
- class
hx.concurrent.lock.RWLock
not working on JS target - workaround for HL on Haxe 3.4 which is missing native thread support
- interface
hx.concurrent.lock.Acquirable
- class
hx.concurrent.CountDownLatch
- class
hx.concurrent.lock.RWLock
(upgradeable Read Write Lock)
- renamed method
hx.concurrent.thread.Threads#wait()
tohx.concurrent.thread.Threads#await()
- changed
hx.concurrent.lock.Semaphore
from abstract to class
- define "threads" is now set correctly for targets supporting real threading
- better error logging in Executor
- use native threads on HL target
- [java] "java.lang.IllegalArgumentException: Non-positive period" when using TimerExecutor.submit()
- field
hx.concurrent.Service.ServiceState.STARTING
- method
hx.concurrent.Service.Service#start()
- replaced license header by "SPDX-License-Identifier: Apache-2.0"
- Initial release