Manifesto
Changelog
API
License
Components
Omniverse Native Interfaces
Asserts
Framework
Logging
Audio
Tasking
Tasking Overview
API
Best Practices
Anatomy of a Task
ISettings keys
Synchronization
Notifications
Debugging
Telemetry
Unicode
Localization
Python Bindings
Memory
String
Crash Reporter
Guides
Building
Testing
Coding Style Guide
Packaging
Releasing
Using Valgrind
Carbonite Interface Walkthrough
ONI Walkthrough
Using omni.bind
Documenting
Documentation Guidelines
Restructured Text Guide
C++ Documentation Guide
Python Documentation Guide
carbonite
»
Carbonite Tasking
Carbonite Tasking
¶
Contents:
Tasking Overview
Overview
Quick Start
Architecture
API
API Documentation
Best Practices
Think in Terms of Coroutines
No Thread-Specific Data
Sleeping
Suspend/Wake
Determine if Running as a Task
Mutexes
Use Pinning Only as a Last Resort
Anatomy of a Task
Priority
Trackers
No Trackers
TaskGroup Tracker
TaskContext Tracker
Future<void> Tracker
Counter Tracker
“Functionish”
Lambda
Function and Pointer-to-Function
Member Functions
Functors
Execution
Assigning a fiber
Invoking the Callable
Notifying Trackers
Returning Values
Task Completion and Guarantees
Phase 1: Tracker Exit
Phase 2: Task Completion
Cancellation
Other Task Types
Throttled Tasks
Sub-tasks
Timed Tasks
ISettings keys
Synchronization
Parallel-For / applyRange
Batch size heuristic
Recursive applyRange
Synchronous Tasks
TaskGroup
Waiting
Throttling
The “Main” Priority
Counters (Deprecated)
Deprecation Warning
Signaling task completion
Manual Counter Manipulation
Sub-tasks
Notifications
How it works
Implementing IFiberEvents
Debugging
General Debugging
debugTaskBacktrace
Showing All Tasks
Debugging Deadlocks
Emergency Threads
Running out of Fibers
Waiting in a non-Fiber-Safe Manner
debugWaitingTasks