Fix more async leakage.

This commit is contained in:
Sage Vaillancourt 2022-04-11 16:49:44 -04:00 committed by Sage Vaillancourt
parent 7b014ebafa
commit 40506fd6b2
2 changed files with 7 additions and 1 deletions

View File

@ -445,8 +445,12 @@ int runTests(int detailed, int specificTest)
struct helpText h = helpTexts[hi];
if (h.tests) {
if (detailed && h.testCount > 0) {
if (isSpecific) {
printf("`%s` ", h.symbol);
} else {
printf(" `%s` ", h.symbol);
}
}
for (int ti = 0; ti < h.testCount; ti += 2) {
const char* test = h.tests[ti];
const char* expected = h.tests[ti + 1];

View File

@ -61,6 +61,7 @@ void* doAsync(void* args)
promise->done = 1;
cleanPromise(promise);
deleteEnv(promise->env);
cleanObject(&cloned);
return NULL;
}
@ -75,6 +76,7 @@ Object async(Object* params, int length, struct Environment* env)
.env = env,
.object = cloneObject(params[0]),
};
env->refs += 1;
pthread_create(&promise.promise->thread, NULL, doAsync, promise.promise);
return promise;