Sha256: 45a75c8fdb43c04794f51039741113643a20d6524879a0e8674c386492fafe47

Contents?: true

Size: 1.17 KB

Versions: 35

Compression:

Stored size: 1.17 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);

void runqueue_ring_buffer_migrate(runqueue_ring_buffer *src, runqueue_ring_buffer *dest, VALUE fiber);

#endif /* RUNQUEUE_RING_BUFFER_H */

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
polyphony-0.99 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.98 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.97 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.96 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.95 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.94 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.93 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.92 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.91 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.90 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.89 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.87 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.86 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.85 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.84.1 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.84 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.83 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.82 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.81.1 ext/polyphony/runqueue_ring_buffer.h
polyphony-0.81 ext/polyphony/runqueue_ring_buffer.h