polyphony 0.93 → 0.94

Sign up to get free protection for your applications and to get access to all the features.
@@ -114,30 +114,30 @@ static inline enum write_method detect_write_method(VALUE io) {
114
114
  #endif
115
115
 
116
116
 
117
- static inline int read_to_raw_buffer(VALUE backend, VALUE io, enum read_method method, struct raw_buffer *buffer) {
117
+ static inline int read_to_raw_buffer(VALUE backend, VALUE io, enum read_method method, struct buffer_spec *buffer_spec) {
118
118
  switch (method) {
119
119
  case RM_BACKEND_READ: {
120
- VALUE len = Backend_read(backend, io, PTR2FIX(buffer), Qnil, Qfalse, INT2FIX(0));
120
+ VALUE len = Backend_read(backend, io, PTR2FIX(buffer_spec), Qnil, Qfalse, INT2FIX(0));
121
121
  return (len == Qnil) ? 0 : FIX2INT(len);
122
122
  }
123
123
  case RM_BACKEND_RECV: {
124
- VALUE len = Backend_recv(backend, io, PTR2FIX(buffer), Qnil, INT2FIX(0));
124
+ VALUE len = Backend_recv(backend, io, PTR2FIX(buffer_spec), Qnil, INT2FIX(0));
125
125
  return (len == Qnil) ? 0 : FIX2INT(len);
126
126
  }
127
127
  case RM_READPARTIAL: {
128
- VALUE str = rb_funcall(io, ID_readpartial, 1, INT2FIX(buffer->len));
128
+ VALUE str = rb_funcall(io, ID_readpartial, 1, INT2FIX(buffer_spec->len));
129
129
  int len = RSTRING_LEN(str);
130
- if (len) memcpy(buffer->ptr, RSTRING_PTR(str), len);
130
+ if (len) memcpy(buffer_spec->ptr, RSTRING_PTR(str), len);
131
131
  RB_GC_GUARD(str);
132
132
  return len;
133
133
  }
134
134
  case RM_CALL: {
135
- VALUE str = rb_funcall(io, ID_call, INT2FIX(buffer->len));
135
+ VALUE str = rb_funcall(io, ID_call, INT2FIX(buffer_spec->len));
136
136
  if (TYPE(str) != T_STRING)
137
137
  rb_raise(rb_eRuntimeError, "io#call must return a string");
138
138
  int len = RSTRING_LEN(str);
139
- if (len > buffer->len) len = buffer->len;
140
- if (len) memcpy(buffer->ptr, RSTRING_PTR(str), len);
139
+ if (len > buffer_spec->len) len = buffer_spec->len;
140
+ if (len) memcpy(buffer_spec->ptr, RSTRING_PTR(str), len);
141
141
  RB_GC_GUARD(str);
142
142
  return len;
143
143
  }
@@ -147,35 +147,35 @@ static inline int read_to_raw_buffer(VALUE backend, VALUE io, enum read_method m
147
147
  }
148
148
  }
149
149
 
150
- static inline int write_from_raw_buffer(VALUE backend, VALUE io, enum write_method method, struct raw_buffer *buffer) {
150
+ static inline int write_from_raw_buffer(VALUE backend, VALUE io, enum write_method method, struct buffer_spec *buffer_spec) {
151
151
  switch (method) {
152
152
  case WM_STRING: {
153
- rb_str_buf_cat(io, (char *)buffer->ptr, buffer->len);
154
- return buffer->len;
153
+ rb_str_buf_cat(io, (char *)buffer_spec->ptr, buffer_spec->len);
154
+ return buffer_spec->len;
155
155
  }
156
156
  case WM_BACKEND_WRITE: {
157
- VALUE len = Backend_write(backend, io, PTR2FIX(buffer));
157
+ VALUE len = Backend_write(backend, io, PTR2FIX(buffer_spec));
158
158
  return FIX2INT(len);
159
159
  }
160
160
  case WM_BACKEND_SEND: {
161
- VALUE len = Backend_send(backend, io, PTR2FIX(buffer), INT2FIX(0));
161
+ VALUE len = Backend_send(backend, io, PTR2FIX(buffer_spec), INT2FIX(0));
162
162
  return FIX2INT(len);
163
163
  }
164
164
  case WM_WRITE: {
165
- VALUE str = rb_str_new(0, buffer->len);
166
- memcpy(RSTRING_PTR(str), buffer->ptr, buffer->len);
167
- rb_str_modify_expand(str, buffer->len);
165
+ VALUE str = rb_str_new(0, buffer_spec->len);
166
+ memcpy(RSTRING_PTR(str), buffer_spec->ptr, buffer_spec->len);
167
+ rb_str_modify_expand(str, buffer_spec->len);
168
168
  rb_funcall(io, ID_write, 1, str);
169
169
  RB_GC_GUARD(str);
170
- return buffer->len;
170
+ return buffer_spec->len;
171
171
  }
172
172
  case WM_CALL: {
173
- VALUE str = rb_str_new(0, buffer->len);
174
- memcpy(RSTRING_PTR(str), buffer->ptr, buffer->len);
175
- rb_str_modify_expand(str, buffer->len);
173
+ VALUE str = rb_str_new(0, buffer_spec->len);
174
+ memcpy(RSTRING_PTR(str), buffer_spec->ptr, buffer_spec->len);
175
+ rb_str_modify_expand(str, buffer_spec->len);
176
176
  rb_funcall(io, ID_call, 1, str);
177
177
  RB_GC_GUARD(str);
178
- return buffer->len;
178
+ return buffer_spec->len;
179
179
  }
180
180
  default: {
181
181
  rb_raise(rb_eRuntimeError, "Invalid write method");
@@ -183,16 +183,16 @@ static inline int write_from_raw_buffer(VALUE backend, VALUE io, enum write_meth
183
183
  }
184
184
  }
185
185
 
186
- static inline int write_c_string_from_str(VALUE str, struct raw_buffer *buffer) {
186
+ static inline int write_c_string_from_str(VALUE str, struct buffer_spec *buffer_spec) {
187
187
  int strlen = RSTRING_LEN(str);
188
- if (strlen >= buffer->len)
188
+ if (strlen >= buffer_spec->len)
189
189
  rb_raise(rb_eRuntimeError, "string too long to fit in gzip header buffer");
190
190
 
191
- memcpy(buffer->ptr, RSTRING_PTR(str), strlen);
192
- buffer->ptr[strlen] = 0;
191
+ memcpy(buffer_spec->ptr, RSTRING_PTR(str), strlen);
192
+ buffer_spec->ptr[strlen] = 0;
193
193
  int written = strlen + 1;
194
- buffer->ptr += written;
195
- buffer->len -= written;
194
+ buffer_spec->ptr += written;
195
+ buffer_spec->len -= written;
196
196
  return written;
197
197
  }
198
198
 
@@ -265,7 +265,7 @@ int gzip_prepare_header(struct gzip_header_ctx *ctx, unsigned char *buffer, int
265
265
 
266
266
  len = 10;
267
267
 
268
- struct raw_buffer buffer_spec = {buffer + len, maxlen - len};
268
+ struct buffer_spec buffer_spec = {buffer + len, maxlen - len};
269
269
  if (!NIL_P(ctx->orig_name))
270
270
  len += write_c_string_from_str(ctx->orig_name, &buffer_spec);
271
271
  if (!NIL_P(ctx->comment))
@@ -312,54 +312,54 @@ struct z_stream_ctx {
312
312
 
313
313
  typedef int (*zlib_func)(z_streamp, int);
314
314
 
315
- void read_gzip_header_str(struct raw_buffer *buffer, VALUE *str, unsigned int *in_pos, unsigned long *total_read) {
315
+ void read_gzip_header_str(struct buffer_spec *buffer_spec, VALUE *str, unsigned int *in_pos, unsigned long *total_read) {
316
316
  unsigned long null_pos;
317
317
  // find null terminator
318
318
  for (null_pos = *in_pos; null_pos < *total_read; null_pos++) {
319
- if (!buffer->ptr[null_pos]) break;
319
+ if (!buffer_spec->ptr[null_pos]) break;
320
320
  }
321
321
  if (null_pos == *total_read)
322
322
  rb_raise(rb_eRuntimeError, "Invalid gzip header");
323
323
 
324
- *str = rb_str_new_cstr((char *)buffer->ptr + *in_pos);
324
+ *str = rb_str_new_cstr((char *)buffer_spec->ptr + *in_pos);
325
325
  *in_pos = null_pos + 1;
326
326
  }
327
327
 
328
328
  void gzip_read_header(struct z_stream_ctx *ctx, struct gzip_header_ctx *header_ctx) {
329
- struct raw_buffer in_buffer;
329
+ struct buffer_spec in_buffer_spec;
330
330
  int flags;
331
331
 
332
332
  if (ctx->src_read_method == RM_STRING) {
333
- in_buffer.ptr = (unsigned char *)RSTRING_PTR(ctx->src);
334
- in_buffer.len = RSTRING_LEN(ctx->src);
335
- ctx->in_total = in_buffer.len;
333
+ in_buffer_spec.ptr = (unsigned char *)RSTRING_PTR(ctx->src);
334
+ in_buffer_spec.len = RSTRING_LEN(ctx->src);
335
+ ctx->in_total = in_buffer_spec.len;
336
336
  }
337
337
  else {
338
- in_buffer.ptr = ctx->in;
339
- in_buffer.len = CHUNK;
338
+ in_buffer_spec.ptr = ctx->in;
339
+ in_buffer_spec.len = CHUNK;
340
340
  while (ctx->in_total < 10) {
341
- int read = read_to_raw_buffer(ctx->backend, ctx->src, ctx->src_read_method, &in_buffer);
341
+ int read = read_to_raw_buffer(ctx->backend, ctx->src, ctx->src_read_method, &in_buffer_spec);
342
342
  if (read == 0) goto error;
343
343
  ctx->in_total += read;
344
344
  }
345
345
  }
346
346
 
347
347
  // PRINT_BUFFER("read gzip header", ctx->in, ctx->in_total);
348
- if (in_buffer.ptr[0] != GZ_MAGIC1) goto error;
349
- if (in_buffer.ptr[1] != GZ_MAGIC2) goto error;
350
- if (in_buffer.ptr[2] != GZ_METHOD_DEFLATE) goto error;
351
- flags = in_buffer.ptr[3];
348
+ if (in_buffer_spec.ptr[0] != GZ_MAGIC1) goto error;
349
+ if (in_buffer_spec.ptr[1] != GZ_MAGIC2) goto error;
350
+ if (in_buffer_spec.ptr[2] != GZ_METHOD_DEFLATE) goto error;
351
+ flags = in_buffer_spec.ptr[3];
352
352
 
353
- unsigned long mtime = gzfile_get32(in_buffer.ptr + 4);
353
+ unsigned long mtime = gzfile_get32(in_buffer_spec.ptr + 4);
354
354
  header_ctx->mtime = INT2FIX(mtime);
355
355
  ctx->in_pos = 10;
356
356
 
357
357
  if (flags & GZ_FLAG_ORIG_NAME)
358
- read_gzip_header_str(&in_buffer, &header_ctx->orig_name, &ctx->in_pos, &ctx->in_total);
358
+ read_gzip_header_str(&in_buffer_spec, &header_ctx->orig_name, &ctx->in_pos, &ctx->in_total);
359
359
  else
360
360
  header_ctx->orig_name = Qnil;
361
361
  if (flags & GZ_FLAG_COMMENT)
362
- read_gzip_header_str(&in_buffer, &header_ctx->comment, &ctx->in_pos, &ctx->in_total);
362
+ read_gzip_header_str(&in_buffer_spec, &header_ctx->comment, &ctx->in_pos, &ctx->in_total);
363
363
  else
364
364
  header_ctx->comment = Qnil;
365
365
  return;
@@ -391,25 +391,25 @@ static inline int process_without_gvl(zlib_func fun, z_stream *strm, int flags)
391
391
  static inline int z_stream_write_out(struct z_stream_ctx *ctx, zlib_func fun, int eof) {
392
392
  int ret;
393
393
  int written;
394
- struct raw_buffer out_buffer;
394
+ struct buffer_spec out_buffer_spec;
395
395
 
396
396
  int avail_out_pre = ctx->strm.avail_out = CHUNK - ctx->out_pos;
397
397
  ctx->strm.next_out = ctx->out + ctx->out_pos;
398
398
  ret = process_without_gvl(fun, &ctx->strm, eof ? Z_FINISH : Z_NO_FLUSH);
399
399
  assert(ret != Z_STREAM_ERROR);
400
400
  written = avail_out_pre - ctx->strm.avail_out;
401
- out_buffer.ptr = ctx->out;
402
- out_buffer.len = ctx->out_pos + written;
401
+ out_buffer_spec.ptr = ctx->out;
402
+ out_buffer_spec.len = ctx->out_pos + written;
403
403
 
404
- if (eof && ctx->f_gzip_footer && (CHUNK - out_buffer.len >= GZIP_FOOTER_LEN)) {
405
- gzip_prepare_footer(ctx->crc32, ctx->in_total, out_buffer.ptr + out_buffer.len, 8);
406
- out_buffer.len += GZIP_FOOTER_LEN;
404
+ if (eof && ctx->f_gzip_footer && (CHUNK - out_buffer_spec.len >= GZIP_FOOTER_LEN)) {
405
+ gzip_prepare_footer(ctx->crc32, ctx->in_total, out_buffer_spec.ptr + out_buffer_spec.len, 8);
406
+ out_buffer_spec.len += GZIP_FOOTER_LEN;
407
407
  }
408
408
 
409
- if (out_buffer.len) {
410
- ret = write_from_raw_buffer(ctx->backend, ctx->dest, ctx->dest_write_method, &out_buffer);
409
+ if (out_buffer_spec.len) {
410
+ ret = write_from_raw_buffer(ctx->backend, ctx->dest, ctx->dest_write_method, &out_buffer_spec);
411
411
  if (ctx->mode == SM_INFLATE)
412
- ctx->crc32 = crc32(ctx->crc32, out_buffer.ptr + ctx->out_pos, written);
412
+ ctx->crc32 = crc32(ctx->crc32, out_buffer_spec.ptr + ctx->out_pos, written);
413
413
  ctx->out_total += ret - ctx->out_pos;
414
414
  }
415
415
  ctx->out_pos = 0;
@@ -437,19 +437,19 @@ VALUE z_stream_io_loop(struct z_stream_ctx *ctx) {
437
437
  int eof;
438
438
  int read_len;
439
439
  if (ctx->src_read_method == RM_STRING) {
440
- struct raw_buffer in_buffer = {
440
+ struct buffer_spec in_buffer_spec = {
441
441
  (unsigned char *)RSTRING_PTR(ctx->src) + ctx->in_pos,
442
442
  RSTRING_LEN(ctx->src) - ctx->in_pos
443
443
  };
444
- ctx->strm.next_in = in_buffer.ptr;
445
- read_len = ctx->strm.avail_in = in_buffer.len;
444
+ ctx->strm.next_in = in_buffer_spec.ptr;
445
+ read_len = ctx->strm.avail_in = in_buffer_spec.len;
446
446
  eof = 1;
447
- if (ctx->mode == SM_DEFLATE) ctx->crc32 = crc32(ctx->crc32, in_buffer.ptr, read_len);
447
+ if (ctx->mode == SM_DEFLATE) ctx->crc32 = crc32(ctx->crc32, in_buffer_spec.ptr, read_len);
448
448
  }
449
449
  else {
450
- struct raw_buffer in_buffer = {ctx->in, CHUNK};
450
+ struct buffer_spec in_buffer_spec = {ctx->in, CHUNK};
451
451
  ctx->strm.next_in = ctx->in;
452
- read_len = ctx->strm.avail_in = read_to_raw_buffer(ctx->backend, ctx->src, ctx->src_read_method, &in_buffer);
452
+ read_len = ctx->strm.avail_in = read_to_raw_buffer(ctx->backend, ctx->src, ctx->src_read_method, &in_buffer_spec);
453
453
  if (!read_len) break;
454
454
  eof = read_len < CHUNK;
455
455
  if (ctx->mode == SM_DEFLATE) ctx->crc32 = crc32(ctx->crc32, ctx->in, read_len);
@@ -606,24 +606,24 @@ VALUE IO_http1_splice_chunked(VALUE self, VALUE src, VALUE dest, VALUE maxlen) {
606
606
  VALUE backend = BACKEND();
607
607
  VALUE pipe = rb_funcall(cPipe, ID_new, 0);
608
608
  unsigned char out[128];
609
- struct raw_buffer buffer = { out, 0 };
609
+ struct buffer_spec buffer_spec = { out, 0 };
610
610
 
611
611
  while (1) {
612
612
  int len = FIX2INT(Backend_splice(backend, src, pipe, maxlen));
613
613
  if (!len) break;
614
614
 
615
615
  // write chunk header
616
- buffer.len += sprintf((char *)buffer.ptr + buffer.len, "%x\r\n", len);
617
- write_from_raw_buffer(backend, dest, method, &buffer);
618
- buffer.len = 0;
616
+ buffer_spec.len += sprintf((char *)buffer_spec.ptr + buffer_spec.len, "%x\r\n", len);
617
+ write_from_raw_buffer(backend, dest, method, &buffer_spec);
618
+ buffer_spec.len = 0;
619
619
  while (len) {
620
620
  int spliced = FIX2INT(Backend_splice(backend, pipe, dest, INT2FIX(len)));
621
621
  len -= spliced;
622
622
  }
623
- buffer.len += sprintf((char *)buffer.ptr + buffer.len, "\r\n");
623
+ buffer_spec.len += sprintf((char *)buffer_spec.ptr + buffer_spec.len, "\r\n");
624
624
  }
625
- buffer.len += sprintf((char *)buffer.ptr + buffer.len, "0\r\n\r\n");
626
- write_from_raw_buffer(backend, dest, method, &buffer);
625
+ buffer_spec.len += sprintf((char *)buffer_spec.ptr + buffer_spec.len, "0\r\n\r\n");
626
+ write_from_raw_buffer(backend, dest, method, &buffer_spec);
627
627
 
628
628
  Pipe_close(pipe);
629
629
  RB_GC_GUARD(pipe);
@@ -54,16 +54,16 @@ VALUE Polyphony_backend_feed_loop(VALUE self, VALUE io, VALUE receiver, VALUE me
54
54
  return Backend_feed_loop(BACKEND(), io, receiver, method);
55
55
  }
56
56
 
57
- VALUE Polyphony_backend_read(VALUE self, VALUE io, VALUE str, VALUE length, VALUE to_eof, VALUE pos) {
58
- return Backend_read(BACKEND(), io, str, length, to_eof, pos);
57
+ VALUE Polyphony_backend_read(VALUE self, VALUE io, VALUE buffer, VALUE length, VALUE to_eof, VALUE pos) {
58
+ return Backend_read(BACKEND(), io, buffer, length, to_eof, pos);
59
59
  }
60
60
 
61
61
  VALUE Polyphony_backend_read_loop(VALUE self, VALUE io, VALUE maxlen) {
62
62
  return Backend_read_loop(BACKEND(), io, maxlen);
63
63
  }
64
64
 
65
- VALUE Polyphony_backend_recv(VALUE self, VALUE io, VALUE str, VALUE length, VALUE pos) {
66
- return Backend_recv(BACKEND(), io, str, length, pos);
65
+ VALUE Polyphony_backend_recv(VALUE self, VALUE io, VALUE buffer, VALUE length, VALUE pos) {
66
+ return Backend_recv(BACKEND(), io, buffer, length, pos);
67
67
  }
68
68
 
69
69
  VALUE Polyphony_backend_recv_loop(VALUE self, VALUE io, VALUE maxlen) {
@@ -127,14 +127,14 @@ VALUE Polyphony_backend_write(int argc, VALUE *argv, VALUE self) {
127
127
  }
128
128
 
129
129
  VALUE Polyphony_with_raw_buffer(VALUE self, VALUE size) {
130
- struct raw_buffer buffer;
131
- buffer.len = FIX2INT(size);
132
- buffer.ptr = malloc(buffer.len);
133
- if (!buffer.ptr)
130
+ struct buffer_spec buffer_spec;
131
+ buffer_spec.len = FIX2INT(size);
132
+ buffer_spec.ptr = malloc(buffer_spec.len);
133
+ if (!buffer_spec.ptr)
134
134
  rb_raise(rb_eRuntimeError, "Failed to allocate buffer");
135
135
 
136
- VALUE return_value = rb_yield(PTR2FIX(&buffer));
137
- free(buffer.ptr);
136
+ VALUE return_value = rb_yield(PTR2FIX(&buffer_spec));
137
+ free(buffer_spec.ptr);
138
138
  return return_value;
139
139
  }
140
140
 
@@ -143,27 +143,27 @@ VALUE Polyphony_raw_buffer_get(int argc, VALUE *argv, VALUE self) {
143
143
  VALUE len = Qnil;
144
144
  rb_scan_args(argc, argv, "11", &buf, &len);
145
145
 
146
- struct raw_buffer *buffer = FIX2PTR(buf);
147
- int length = (len == Qnil) ? buffer->len : FIX2INT(len);
146
+ struct buffer_spec *buffer_spec = FIX2PTR(buf);
147
+ int length = (len == Qnil) ? buffer_spec->len : FIX2INT(len);
148
148
 
149
- if (length > buffer->len) length = buffer->len;
150
- return rb_utf8_str_new((char *)buffer->ptr, length);
149
+ if (length > buffer_spec->len) length = buffer_spec->len;
150
+ return rb_utf8_str_new((char *)buffer_spec->ptr, length);
151
151
  }
152
152
 
153
- VALUE Polyphony_raw_buffer_set(VALUE self, VALUE buf, VALUE str) {
154
- struct raw_buffer *buffer = FIX2PTR(buf);
153
+ VALUE Polyphony_raw_buffer_set(VALUE self, VALUE buffer, VALUE str) {
154
+ struct buffer_spec *buffer_spec = FIX2PTR(buffer);
155
155
  int len = RSTRING_LEN(str);
156
- if (len > buffer->len)
156
+ if (len > buffer_spec->len)
157
157
  rb_raise(rb_eRuntimeError, "Given string does not fit in given buffer");
158
158
 
159
- memcpy(buffer->ptr, RSTRING_PTR(str), len);
160
- buffer->len = len;
159
+ memcpy(buffer_spec->ptr, RSTRING_PTR(str), len);
160
+ buffer_spec->len = len;
161
161
  return self;
162
162
  }
163
163
 
164
- VALUE Polyphony_raw_buffer_size(VALUE self, VALUE buf) {
165
- struct raw_buffer *buffer = FIX2PTR(buf);
166
- return INT2FIX(buffer->len);
164
+ VALUE Polyphony_raw_buffer_size(VALUE self, VALUE buffer) {
165
+ struct buffer_spec *buffer_spec = FIX2PTR(buffer);
166
+ return INT2FIX(buffer_spec->len);
167
167
  }
168
168
 
169
169
  // VALUE Polyphony_backend_close(VALUE self, VALUE io) {
@@ -1,8 +1,6 @@
1
1
  #ifndef POLYPHONY_H
2
2
  #define POLYPHONY_H
3
3
 
4
- #include <execinfo.h>
5
-
6
4
  #include "ruby.h"
7
5
  #include "runqueue_ring_buffer.h"
8
6
  #include "backend_common.h"
@@ -12,13 +10,6 @@
12
10
  #define INSPECT(str, obj) { printf(str); VALUE s = rb_funcall(obj, rb_intern("inspect"), 0); printf(": %s\n", StringValueCStr(s)); }
13
11
  #define CALLER() rb_funcall(rb_mKernel, rb_intern("caller"), 0)
14
12
  #define TRACE_CALLER() INSPECT("caller: ", CALLER())
15
- #define TRACE_C_STACK() { \
16
- void *entries[10]; \
17
- size_t size = backtrace(entries, 10); \
18
- char **strings = backtrace_symbols(entries, size); \
19
- for (unsigned long i = 0; i < size; i++) printf("%s\n", strings[i]); \
20
- free(strings); \
21
- }
22
13
 
23
14
  // exceptions
24
15
  #define TEST_EXCEPTION(ret) (rb_obj_is_kind_of(ret, rb_eException) == Qtrue)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Polyphony
4
- VERSION = '0.93'
4
+ VERSION = '0.94'
5
5
  end
@@ -137,7 +137,7 @@ class MoveOnAfterTest < MiniTest::Test
137
137
  t1 = monotonic_clock
138
138
 
139
139
  assert_nil v
140
- assert_in_range 0.014..0.02, t1 - t0 if IS_LINUX
140
+ assert_in_range 0.014..0.025, t1 - t0 if IS_LINUX
141
141
  end
142
142
 
143
143
  def test_nested_move_on_after
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polyphony
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.93'
4
+ version: '0.94'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-05 00:00:00.000000000 Z
11
+ date: 2022-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -136,7 +136,7 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.1.4
139
- description:
139
+ description:
140
140
  email: sharon@noteflakes.com
141
141
  executables: []
142
142
  extensions:
@@ -309,6 +309,7 @@ files:
309
309
  - examples/pipes/gunzip.rb
310
310
  - examples/pipes/gzip.rb
311
311
  - examples/pipes/gzip_http_server.rb
312
+ - examples/pipes/http_server.rb
312
313
  - examples/pipes/tcp_proxy.rb
313
314
  - examples/pipes/tee.rb
314
315
  - ext/libev/Changes
@@ -645,7 +646,7 @@ metadata:
645
646
  documentation_uri: https://digital-fabric.github.io/polyphony/
646
647
  homepage_uri: https://digital-fabric.github.io/polyphony/
647
648
  changelog_uri: https://github.com/digital-fabric/polyphony/blob/master/CHANGELOG.md
648
- post_install_message:
649
+ post_install_message:
649
650
  rdoc_options:
650
651
  - "--title"
651
652
  - polyphony
@@ -664,8 +665,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
664
665
  - !ruby/object:Gem::Version
665
666
  version: '0'
666
667
  requirements: []
667
- rubygems_version: 3.3.3
668
- signing_key:
668
+ rubygems_version: 3.3.7
669
+ signing_key:
669
670
  specification_version: 4
670
671
  summary: Fine grained concurrency for Ruby
671
672
  test_files: []