fiber

What is the difference between a thread and a fiber?

What is the difference between a thread and a fiber? I've heard of fibers from ruby and I've read heard they're available in other languages, could somebody explain to me in simple terms what is the difference between a thread and a fiber. ...

Where can a student get his hands on some fiber optics equipment?

Hi, I'm a computer science student and was able to convince a CDN who has a NOC locally to give me a tour of their facility this last Monday. I thought it was great and might consider network engineering in the future. But I think I'd rather be programming the utilities that run and operate these networks. Either way, I would love to pl...

Lightweight, portable C++ fibers, MIT license

I would like to get ahold of a lightweight, portable fiber lib with MIT license (or looser). Boost.Coroutine does not qualify (not lightweight), neither do Portable Coroutine Library nor Kent C++CSP (both GPL). Edit: could you help me find one? :) ...

How do I use Ruby1.9 with Shoes?

Shoes wraps it's own Ruby install, right? I can't use Fiber which is a Ruby1.9 feature. And, I want to use a Fiber for creating a generator. Here's my code (so you can make sure the problem isn't with my code): class BrownianGenerator def initialize @x = 0 @fiber = Fiber.new do loop do @x = @x+rand; F...

How do Enumerators work in Ruby 1.9.1?

This question is not about how to use Enumerators in Ruby 1.9.1 but rather im curious how they work. Here is some code: class Bunk def initialize @h = [*1..100] end def each if !block_given? enum_for(:each) else 0.upto(@h.length) { |i| yield @h[i] }...

Fibers in C#: are they faster than iterators, and have people used them?

So I was chatting with a colleague about fibers and turned up this paper from 2003 that describes a implementation of coroutines in C# using the Fiber API. The implementation of Yield in this paper was for .NET 1.1, so it predates the yield return syntax that appeared in .NET 2.0. It definitely looks, at first glance, that the impleme...

Is there a fiber api in .net?

Out of more curiosity than anything I've been looking for a set of C#/.net classes to support fibers/co-routines (the win32 version) and haven't had any luck. Does anybody know of such a beast? ...

Scripting languages that support fibers/coroutines?

I'd like to start a new network server project in a language that supports concurrency through fibers aka coroutines aka user-mode threads. Determining what exactly are my options has been exceedingly difficult as the term "coroutine" seems to be used quite loosely to mean a variety of things, and "fiber" is used almost exclusively in r...

Asynchronous HTTP request

require 'net/http' urls = [ {'link' => 'http://www.google.com/'}, {'link' => 'http://www.yandex.ru/'}, {'link' => 'http://www.baidu.com/'} ] urls.each do |u| u['content'] = Net::HTTP.get( URI.parse(u['link']) ) end print urls This code works in synchronous style. First request, second, third. I would like to send all requests...

Coroutines in C#

I am looking to implement co-routines (user schedualed threads) in c#. When using c++ I was previously using fibers. As I see on the internet fibers do not exist in C#. I would like to get simillar functionality. Is there any "right" way to implement coroutines in c#? I have thought of implementing this using threads that aqcuire a si...

What are Erlang processes behind the scenes?

I've got very limited knowledge about Erlang, but as far as I understand, it can spawn "processes" with a very low cost. So I wonder, what are those "processes" behind the scenes? Are they Fibers? Threads? Continuations? ...

Processes, threads, green threads, protothreads, fibers, coroutines: what's the difference?

I'm reading up on concurrency. I've got a bit over my head with terms that have confusingly similar definitions. Namely: Processes Threads "Green threads" Protothreads Fibers Coroutines "Goroutines" in the Go language My impression is that the distinctions rest on (1) whether truly parallel or multiplexed; (2) whether managed at th...

Ruby concurrency/asynchronous processing (with simple use case)

I was looking into ruby's parallel/asynchronous processing capabilities and read many articles and blog posts. I looked through EventMachine, Fibers, Revactor, Reia, etc, etc. Unfortunately, I wasn't able to find a simple, effective (and non-IO-blocking) solution for this very simple use case: File.open('somelogfile.txt') do |file| wh...