LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Sam Vilain Date: Sun Dec 11 14:18:09 2005 Subject: Re: Another feature request...
On Fri, 2005-12-09 at 14:03 +1100, Adam Kennedy wrote: > > Now, to understand this program, remember that a coroutine is a bit like > > a thread, but it doesn't need another process or OS thread; instead it > > uses defined preemption points. Coroutines don't suck in practical use > > like OS threads, because no matter how "lightweight" they are because > > you still need to protect access to all common data structures with > > locks, semaphores, etc. > Or in Perl 6, with Software Transactional Memory. Software Transactional Memory is a composed feature that bundles elements of semaphores, locks, consistent read, etc, into a convenient interface. It is not a technique in itself on Van Neumann machines. > > Does that explain much, or would something "practical" be better? > I would be interested in a real example of where this is useful. I'd > also like to know if any database in existance supports this, or plans to. It is useful at least wherever lazy access to multiple result sets would be useful. To be honest co-routines are one of those things that until you see how simple they make some problems, you don't understand why they are useful. Oracle seems to support multiple concurrent selects operating as if they were all read-only cursors. Pg, etc, can support this behaviour with explicit cursors. > As for implementation (regardless of merit), since the main idea is to > encapsulate the larger chunks of functionality into Roles, I wouldn't > imagine it would be that hard to implement some form of > DBI2::Role::Cororoutine role... Yes, probably. Sam.
| Navigate in group perl.dbi2.dev at sever nntp.perl.org | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |