Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > windows/mac help wanted

Reply
Thread Tools

windows/mac help wanted

 
 
Ara.T.Howard
Guest
Posts: n/a
 
      08-17-2004

rubyists-

i'd really like to see an interface to posix locking available in ruby for all
(most) platforms ruby runs on.

i have an extension for this that should compile fine on any *nix system
(testers wanted) avialable at

http://raa.ruby-lang.org/project/posixlock/

if anyone would like to volunteer to help compile/port this extenstion to
windows/mac - i would __greatly__ appreciate it. it is a very simple
extension containing only two methods, so it shouldn't be painful. i would be
happy to do this myself but do not have access to either windows or mac nodes.

kind regards.

-a
--
================================================== =============================
| EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
| PHONE :: 303.497.6469
| A flower falls, even though we love it;
| and a weed grows, even though we do not love it.
| --Dogen
================================================== =============================
 
Reply With Quote
 
 
 
 
Rando Christensen
Guest
Posts: n/a
 
      08-18-2004
Compiles fine on my mac:

vivi ~/src/posixlock-0.0.1 % ruby extconf.rb
creating Makefile
vivi ~/src/posixlock-0.0.1 % make
gcc -fno-common -g -Os -pipe -no-cpp-precomp -fno-common
-DHAVE_INTTYPES_H -pipe -pipe -I.
-I/usr/lib/ruby/1.6/powerpc-darwin7.0 -I. -c -o posixlock.o posixlock.c
cc -fno-common -g -Os -pipe -no-cpp-precomp -fno-common
-DHAVE_INTTYPES_H -pipe -pipe -dynamic -bundle -undefined suppress
-flat_namespace -L/usr/lib/ruby/1.6/powerpc-darwin7.0 -L/usr/lib -o
posixlock.bundle posixlock.o -ldl -lobjc
vivi ~/src/posixlock-0.0.1 % sudo make install
posixlock.bundle -> /usr/lib/ruby/1.6/powerpc-darwin7.0/posixlock.bundle
chmod 0755 /usr/lib/ruby/1.6/powerpc-darwin7.0/posixlock.bundle
vivi ~/src/posixlock-0.0.1 %

How should I test it?

--
Rando Christensen
<>


 
Reply With Quote
 
 
 
 
Ara.T.Howard
Guest
Posts: n/a
 
      08-18-2004
On Wed, 18 Aug 2004, Rando Christensen wrote:

> Compiles fine on my mac:


thanks!


> vivi ~/src/posixlock-0.0.1 % ruby extconf.rb
> creating Makefile
> vivi ~/src/posixlock-0.0.1 % make
> gcc -fno-common -g -Os -pipe -no-cpp-precomp -fno-common
> -DHAVE_INTTYPES_H -pipe -pipe -I.
> -I/usr/lib/ruby/1.6/powerpc-darwin7.0 -I. -c -o posixlock.o posixlock.c
> cc -fno-common -g -Os -pipe -no-cpp-precomp -fno-common
> -DHAVE_INTTYPES_H -pipe -pipe -dynamic -bundle -undefined suppress
> -flat_namespace -L/usr/lib/ruby/1.6/powerpc-darwin7.0 -L/usr/lib -o
> posixlock.bundle posixlock.o -ldl -lobjc
> vivi ~/src/posixlock-0.0.1 % sudo make install
> posixlock.bundle -> /usr/lib/ruby/1.6/powerpc-darwin7.0/posixlock.bundle
> chmod 0755 /usr/lib/ruby/1.6/powerpc-darwin7.0/posixlock.bundle
> vivi ~/src/posixlock-0.0.1 %


> How should I test it?


require 'posixlock'
def lock_test
pid = Process.pid
42.times do
open(__FILE__,'r+'){|f| f.posixlock(File::LOCK_EX) and puts "locked by <#{ pid }>"}
end
end
fork ? lock_test && Process.wait : lock_test


it is nice to run this on an nfs mounted file system - but not required...

-a
--
================================================== =============================
| EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
| PHONE :: 303.497.6469
| A flower falls, even though we love it;
| and a weed grows, even though we do not love it.
| --Dogen
================================================== =============================
 
Reply With Quote
 
Rando Christensen
Guest
Posts: n/a
 
      08-18-2004
Ara.T.Howard wrote:
> require 'posixlock'
> def lock_test
> pid = Process.pid
> 42.times do
> open(__FILE__,'r+'){|f| f.posixlock(File::LOCK_EX) and puts
> "locked by <#{ pid }>"}
> end
> end
> fork ? lock_test && Process.wait : lock_test


I don't have nfs to test on currently, but I assume this means it worked? :

vivi ~/src/posixlock-0.0.1 % ruby test.rb
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1277>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1276>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>
locked by <1277>


--
Rando Christensen
<>


 
Reply With Quote
 
Ara.T.Howard
Guest
Posts: n/a
 
      08-18-2004
On Wed, 18 Aug 2004, Rando Christensen wrote:

> Ara.T.Howard wrote:
>> require 'posixlock'
>> def lock_test
>> pid = Process.pid
>> 42.times do
>> open(__FILE__,'r+'){|f| f.posixlock(File::LOCK_EX) and puts
>> "locked by <#{ pid }>"}
>> end
>> end
>> fork ? lock_test && Process.wait : lock_test

>
> I don't have nfs to test on currently, but I assume this means it worked? :
>
> vivi ~/src/posixlock-0.0.1 % ruby test.rb
> locked by <1276>
> locked by <1276>


yup.

thanks a bunch. mac __are__ nice i guess! now all i have to do is deal with
the windows thing...

regards.

-a
--
================================================== =============================
| EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
| PHONE :: 303.497.6469
| A flower falls, even though we love it;
| and a weed grows, even though we do not love it.
| --Dogen
================================================== =============================
 
Reply With Quote
 
Dan Janowski
Guest
Posts: n/a
 
      08-18-2004
Windows seems to exclusive lock when a file is opened for writing by
default. I have been unable to find a way around it. There cannot be a
reader, and then another process open the file for writing.

I may have missed something, but maybe you need to only hold open a
file for writing.

If this is not the case, or there is a way around it, I am interested
to know.

Dan


On Aug 17, 2004, at 22:50, Ara.T.Howard wrote:

> On Wed, 18 Aug 2004, Rando Christensen wrote:
>
>> Ara.T.Howard wrote:
>>> require 'posixlock'
>>> def lock_test
>>> pid = Process.pid
>>> 42.times do
>>> open(__FILE__,'r+'){|f| f.posixlock(File::LOCK_EX) and puts
>>> "locked by <#{ pid }>"}
>>> end
>>> end
>>> fork ? lock_test && Process.wait : lock_test

>>
>> I don't have nfs to test on currently, but I assume this means it
>> worked? :
>>
>> vivi ~/src/posixlock-0.0.1 % ruby test.rb
>> locked by <1276>
>> locked by <1276>

>
> yup.
>
> thanks a bunch. mac __are__ nice i guess! now all i have to do is
> deal with
> the windows thing...
>
> regards.
>
> -a
> --
> ================================================== =====================
> ========
> | EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
> | PHONE :: 303.497.6469
> | A flower falls, even though we love it;
> | and a weed grows, even though we do not love it. | --Dogen
> ================================================== =====================
> ========
>




 
Reply With Quote
 
Ara.T.Howard
Guest
Posts: n/a
 
      08-18-2004
On Wed, 18 Aug 2004, Dan Janowski wrote:

> Windows seems to exclusive lock when a file is opened for writing by
> default. I have been unable to find a way around it. There cannot be a
> reader, and then another process open the file for writing.
>
> I may have missed something, but maybe you need to only hold open a
> file for writing.
>
> If this is not the case, or there is a way around it, I am interested
> to know.


i know nothing of windows but, in my case, i'm using posixlock to lock an
empty nfs mounted semaphore file. i'm guessin the windows nfs client is that
quite smart enough to know that some process on another machine is holding a
lock...

also LockFile exists for windows according to some of the source i've looked
at...

but, like i said, i know _nothing_ of windows. please enlighten if you have
further comments!

cheers.

-a

>
> Dan
>
>
> On Aug 17, 2004, at 22:50, Ara.T.Howard wrote:
>
>> On Wed, 18 Aug 2004, Rando Christensen wrote:
>>
>>> Ara.T.Howard wrote:
>>>> require 'posixlock'
>>>> def lock_test
>>>> pid = Process.pid
>>>> 42.times do
>>>> open(__FILE__,'r+'){|f| f.posixlock(File::LOCK_EX) and puts
>>>> "locked by <#{ pid }>"}
>>>> end
>>>> end
>>>> fork ? lock_test && Process.wait : lock_test
>>>
>>> I don't have nfs to test on currently, but I assume this means it
>>> worked? :
>>>
>>> vivi ~/src/posixlock-0.0.1 % ruby test.rb
>>> locked by <1276>
>>> locked by <1276>

>>
>> yup.
>>
>> thanks a bunch. mac __are__ nice i guess! now all i have to do is
>> deal with
>> the windows thing...
>>
>> regards.
>>
>> -a
>> --
>> ================================================== =====================
>> ========
>> | EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
>> | PHONE :: 303.497.6469
>> | A flower falls, even though we love it;
>> | and a weed grows, even though we do not love it. | --Dogen
>> ================================================== =====================
>> ========
>>

>
>
>
>


-a
--
================================================== =============================
| EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
| PHONE :: 303.497.6469
| A flower falls, even though we love it;
| and a weed grows, even though we do not love it.
| --Dogen
================================================== =============================
 
Reply With Quote
 
Rando Christensen
Guest
Posts: n/a
 
      08-18-2004
Ara.T.Howard wrote:
> yup.
>
> thanks a bunch. mac __are__ nice i guess!


As I understand it, most of the problems (I'd estimate somewhere around
80%, but I have nothing to back that number up) involved in porting unix
software to osx (not taking the gui into account at all, of course) are
the differences in how libraries work and small tweaks to the compiler
to account for it, and a surprising number of things really do work
exactly how they'd work in a freebsd system.

Which is very nice indeed.

--
Rando Christensen
<>


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
WANTED: AT desktop cases, wanted for sculpture. Brett NZ Computing 0 09-09-2004 07:14 AM
HELP WANTED HELP WANTED HELP WANTED Harvey ASP .Net 1 07-16-2004 01:12 PM
HELP WANTED HELP WANTED HELP WANTED Harvey ASP .Net 0 07-16-2004 10:00 AM
Excel help wanted Richard Coulthard Microsoft Certification 1 03-06-2004 03:25 AM
Re: Cisco 837 Combination Public and Private Addresses - Help Wanted Erik Tamminga Cisco 0 07-25-2003 11:53 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57