From eb9e5260a627191d255b30e43ff239dbf4b11faa Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Tue, 13 Aug 2024 03:27:32 -0400 Subject: Fix channels --- builtins/channel.c | 7 ++++--- builtins/channel.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'builtins') diff --git a/builtins/channel.c b/builtins/channel.c index e4683aa3..dba50115 100644 --- a/builtins/channel.c +++ b/builtins/channel.c @@ -14,18 +14,19 @@ #include "array.h" #include "functions.h" #include "halfsiphash.h" +#include "integers.h" #include "types.h" #include "util.h" -public channel_t *Channel$new(int64_t max_size) +public channel_t *Channel$new(Int_t max_size) { - if (max_size <= 0) + if (Int$compare_value(max_size, I(0)) <= 0) fail("Cannot create a channel with a size less than one: %ld", max_size); channel_t *channel = new(channel_t); channel->items = (array_t){}; channel->mutex = (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER; channel->cond = (pthread_cond_t)PTHREAD_COND_INITIALIZER; - channel->max_size = max_size; + channel->max_size = Int$as_i64(max_size); return channel; } diff --git a/builtins/channel.h b/builtins/channel.h index 6f628726..c5a612ce 100644 --- a/builtins/channel.h +++ b/builtins/channel.h @@ -9,7 +9,7 @@ #include "types.h" #include "util.h" -channel_t *Channel$new(int64_t max_size); +channel_t *Channel$new(Int_t max_size); void Channel$push(channel_t *channel, const void *item, int64_t padded_item_size); #define Channel$push_value(channel, item, padded_item_size) ({ __typeof(item) _item = item; Channel$push(channel, &_item, padded_item_size); }) void Channel$push_all(channel_t *channel, array_t to_push, int64_t padded_item_size); -- cgit v1.2.3