Sha256: f4b40c40a171001c9d89cdadcda04d481716dc256e63bd294b5fc110064a21e0

Contents?: true

Size: 1.07 KB

Versions: 21

Compression:

Stored size: 1.07 KB

Contents

#ifndef RUNQUEUE_RING_BUFFER_H
#define RUNQUEUE_RING_BUFFER_H

#include "ruby.h"

typedef struct runqueue_entry {
  VALUE fiber;
  VALUE value;
} runqueue_entry;

typedef struct runqueue_ring_buffer {
  runqueue_entry *entries;
  unsigned int size;
  unsigned int count;
  unsigned int head;
  unsigned int tail;
} runqueue_ring_buffer;

void runqueue_ring_buffer_init(runqueue_ring_buffer *buffer);
void runqueue_ring_buffer_free(runqueue_ring_buffer *buffer);
void runqueue_ring_buffer_mark(runqueue_ring_buffer *buffer);
int runqueue_ring_buffer_empty_p(runqueue_ring_buffer *buffer);
void runqueue_ring_buffer_clear(runqueue_ring_buffer *buffer);

runqueue_entry runqueue_ring_buffer_shift(runqueue_ring_buffer *buffer);
void runqueue_ring_buffer_unshift(runqueue_ring_buffer *buffer, VALUE fiber, VALUE value);
void runqueue_ring_buffer_push(runqueue_ring_buffer *buffer, VALUE fiber, VALUE value);

void runqueue_ring_buffer_delete(runqueue_ring_buffer *buffer, VALUE fiber);
int runqueue_ring_buffer_index_of(runqueue_ring_buffer *buffer, VALUE fiber);

#endif /* RUNQUEUE_RING_BUFFER_H */

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
polyphony-0.66 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.65 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.64 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.63 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.62 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.61 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.60 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.59.1 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.59 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.58 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.57.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.56.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.55.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.54.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.53.2 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.53.1 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.53.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.52.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.51.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.50.1 ext/polyphony/runqueue_ring_buffer.h