You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thread-safety tools with ThreadFunctors, simplified apply via Applicators (#288)
Changelog:
- Refactor the `apply` pipeline to get rid of closures in favour of `Applicator`s, which are able to run `apply` on arrays, geoms and featurecollections. Some examples are `ApplyToPoint`, `ApplyToGeom`, etc. These are mainly used by internal methods in the `apply` pipeline.
- Add a `TaskFunctors` struct that allows one to use individual functors per task. This allows thread safety for reentrant C APIs.
- Refactor `reproject`, in the Proj extension, to use this functionality
* add ThreadFunctors for threaded stateful functors in apply
* include threading.jl
* import ThreadFunctors
* add Applicators
* comments
* Move applicators out of apply.jl
* Replace the apply on pointtrait to polygon guts
with a custom applicator. Maybe we need a formalized interface for applicators.
* include applicators in core
* add a few more docs in threading.jl
* define applicator interface + remove overwrite
* fix reproject
* add back crs info to rebuilt geoms
* remove error
* add GFT
* add and use applicators
* more applicators
* stop segfault by assigning context post cloning / construction
* fix maptasks on thread functors
* Fix tests
ProjString needs +type=crs but regular String does not.
This is likely because I stopped converting everything to String and started relying on the Proj constructors.
* fixc
* union proj crs
* if statement for stability
* passing tests
* to -> with
---------
Co-authored-by: Anshul Singhvi <[email protected]>
0 commit comments