Comments (3)
extremely old version of janitor that did not support threads
also i'd just use flamework for typescript
from janitor.
here's a polyfill if you need one:
//!native
//!optimize 2
import { Janitor } from "@rbxts/janitor";
function smartThreadCancel(thread: thread) {
let cancelled: boolean | undefined;
if (coroutine.running() !== thread) [cancelled] = pcall(() => task.cancel(thread));
if (!cancelled) {
const toCancel = thread;
task.defer(() => task.cancel(toCancel));
}
}
export default function janitorAdd<
O extends keyof U extends never
? object
: I extends keyof U
? U[I]
: M extends true
? Callback | thread
: M extends undefined
? RBXScriptConnection | { Destroy(): void }
: object,
M extends undefined | ((this: O) => void) | ((_: O) => void) | ExtractKeys<O, () => void> | true,
I extends keyof U | undefined = undefined,
U extends object | void = void,
>(janitor: Janitor<U>, object: O, methodName?: M, index?: I) {
if (typeIs(object, "thread")) {
const localThread = object;
janitor.Add((() => smartThreadCancel(localThread)) as never, true, index);
return object;
}
return janitor.Add(object, methodName, index);
}
from janitor.
Alright thank you!
from janitor.
Related Issues (11)
- Cleanup cleanups that make cleanups HOT 1
- Fix `LinkToInstance`
- Do not use os.clock HOT 2
- Question: Reasoning behind `:AddPromise()` not having an index parameter? HOT 1
- No deterministic ordering of cleanup functions causes race conditions HOT 7
- Refactor Janitor's source code
- Convert LinkToInstance to use AncestryChanged
- Cancelling a thread from within itself will error.
- Add `LinkToInstanceRemoval`
- Add support for Quenty's Promise library.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from janitor.