Sha256: 4bcede40b796f62a17571ed7aebe81ce561ab24183ed1998543a198e756fcd10

Contents?: true

Size: 1018 Bytes

Versions: 14

Compression:

Stored size: 1018 Bytes

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);

#endif /* RUNQUEUE_RING_BUFFER_H */

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
polyphony-0.49.2 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.49.1 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.49.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.48.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.47.5.1 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.47.5 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.47.4 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.47.3 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.47.2 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.47.1 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.47.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.46.1 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.46.0 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.45.5 ext/polyphony/runqueue_ring_buffer.h