[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orekit Developers] Work In Progress for thread safety
Hi all,
Some progress has been made on thread-safety for Orekit (see issue
<https://www.orekit.org/forge/issues/3>).
As discussed on this list and on the issue, we have set up a
thread-safe TimeStampedCache that do not use synchronization at all
but rely on more efficient mechanisms (read-write locks). The
rationale is to have thread safety that works even when threads are
not tightly bound to some dates interval. This corresponds to two
major use cases:
- one where threads are used in a pool (see ExecutorService and the whole
java standard concurrent package)
- one where threads are created and shut down at high frequency, a new thread
being used for each request
Of course, it also supports applications where threads are completely
under control and each thread is tightly bound to a date range.
This work started on a dedicated branch, and has now been merged back
into master. As of writing, the general TimeStampedCache framework is
in place for the simplest case of leap seconds handling (the UTCScale
class). It will be extended to all other Orekit caches and can also be
used at application level (people can for example need cached orbits).
I would be happy to get some feedback from users. If you have
multi-threaded applications, could you check the behaviour of the
current implementation on dates ? Be aware that for now only UTC-TAI
relies on the new thread-safe mechanism and for example frames are not
thread-safe yet (but will probably be soon).
Thanks for your help
Luc, on behalf of the Orekit team
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.