How khushpanchal/prioritydispatcher works
PriorityDispatcher is a small Kotlin coroutine-dispatcher library: callers select a priority, the library dispatches work through either a priority-queued fixed pool or a separate immediate executor, and the original coroutine runnable is ultimately executed. Source excerpts show the implementation of both paths; no external service or persistent store is involved.
Main entry points: PriorityDispatcher.kt PriorityDispatcher · CustomPriorityDispatcher.kt Custom dispatcher · PriorityRunnable.kt Priority runnable · Priority.kt Priority levels
Components 8
Public API
- PriorityDispatcher
prioritydispatcher/src/main/java/com/khush/prioritydispatcher/PriorityDispatcher.kt
Dispatch Internals
- Custom dispatcher
prioritydispatcher/src/main/java/com/khush/prioritydispatcher/internal/CustomPriorityDispatcher.kt - Priority levels
prioritydispatcher/src/main/java/com/khush/prioritydispatcher/internal/Priority.kt - Priority runnable
prioritydispatcher/src/main/java/com/khush/prioritydispatcher/internal/PriorityRunnable.kt
Execution Pools
- Priority pool
prioritydispatcher/src/main/java/com/khush/prioritydispatcher/PriorityDispatcher.kt - Immediate pool
prioritydispatcher/src/main/java/com/khush/prioritydispatcher/PriorityDispatcher.kt
Other components
- Coroutine caller
- Coroutine task
Connections 10
- Coroutine caller → PriorityDispatcher: selects priority
- PriorityDispatcher → Custom dispatcher: creates dispatcher
- PriorityDispatcher → Priority levels: assigns level
- PriorityDispatcher → Priority pool: uses pool
- Custom dispatcher → Priority runnable: wraps runnable
- Custom dispatcher → Priority pool: submits task
- Priority pool → Priority runnable: orders and runs
- Priority runnable → Coroutine task: runs task
- PriorityDispatcher → Immediate pool: submits immediate task
- Immediate pool → Coroutine task: runs task