Doug MacEachern wrote:
> On Tue, 4 Dec 2001, Stas Bekman wrote:
>
>
>>I'm implementing PerlIO::APR (will be APR::IO in mod_perl)
>>
>>I need to get my hands on the memory pool. Currently I use the global
>>pool via modperl_global_get_pconf(). which allows you to keep your code
>>as a pure perl:
>>
>>open my $fh, ">:APR", $path or die "$!";
>>
>>Does calling modperl_global_get_pconf() make things slower? If it does,
>>where do we stick $r/$s? something like this?
>>
>
> you can use the modperl_sv2pool() function, see the
> ap_server_root_relative() wrapper for an example.
>
> or just force an APR::Pool argument to be passed. using the perl builtin
> open is just sugar, there should be an APR::File->open function that takes
> the same args as apr_file_open().
So should the open syntax be something like this:
my $fh = APR::File->open($r|$s, <apr_file_open args>) or die $!;
but I guess I don't understand something: why do we need to use
APR::File->open? What's wrong with perl's open()? I've it working
already. If you don't use perl's open() do you also imply that we have
to use $fh->close, $fh->seek and so on, using APR arguments? What's the
point of having PerlIO layer at all?
I've basic tests working using a pure perl syntax and apr calls as its
internals. Here is a snippet from the test:
open my $fh, "<:APR", $file
or die "Cannot open $file for reading: $!";
open my $dup_fh, "<&:APR", $fh
or die "Cannot dup $file for reading: $!";
close $fh;
my $received = <$dup_fh>;
close $dup_fh;
so the only thing it misses is $r|$s, which can be:
open my $fh, $r, ...
I'm not sure how to handle the best the forwarding of any errors from
APR's side to Perl side. I don't think it's possible to convert APR's
errno into Perl's errno, without a *lot* of hassle. what's the best way
to go?
_____________________________________________________________________
Stas Bekman JAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide http://perl.apache.org/guide
mailto:[EMAIL PROTECTED] http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]