-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* new resource clean strategy with new sans-io-runtime lib * avoid shutdown loop when rtp timeout with rtpengine
- Loading branch information
Showing
50 changed files
with
1,203 additions
and
940 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Resource Clear | ||
|
||
This server is built on top of [sans-io-runtime](https://github.com/atm0s-org/sans-io-runtime), which is a runtime for building server applications. With this reason we don't use mechanism of `Drop` to release resource. Instead, we use a queue to manage the resource release. | ||
|
||
We have 2 types of tasks: | ||
|
||
- Self-managed tasks: for example, the endpoint task | ||
- Dependent tasks: for example, the cluster room task | ||
|
||
For self-managed tasks, the task itself determines when to kill itself. For dependent tasks, the task will be killed when all of its dependent tasks are un-linked. Each task type has a different way to handle task termination. | ||
|
||
## Self-managed task | ||
|
||
Example: The endpoint task can automatically release resources when the client disconnects. | ||
|
||
## Dependent task | ||
|
||
Example: The cluster room task needs to wait for all dependent tasks (endpoint track, mixer, or data channel) to be un-linked before destroying itself. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.