diff options
| -rw-r--r-- | builtins/channel.c | 7 | ||||
| -rw-r--r-- | builtins/channel.h | 2 | ||||
| -rw-r--r-- | compile.c | 2 |
3 files changed, 6 insertions, 5 deletions
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); @@ -1850,7 +1850,7 @@ CORD compile(env_t *env, ast_t *ast) code_err(chan->max_size, "This value must be an integer, not %T", get_type(env, chan->max_size)); return CORD_all("Channel$new(", max_size, ")"); } else { - return "Channel$new(INT64_MAX)"; + return "Channel$new(I(INT32_MAX))"; } } case Table: { |
