[#1649] Re: New Ruby projects — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1672] Re: Ruby 1.4 stable manual bug? — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1673] Re: Possible problem with ext/socket in 1.5.2 — itojun@...
[#1694] Conventions for our Ruby book — Dave Thomas <Dave@...>
[#1715] Install postgresql support — Ikhlasul Amal <amal@...>
Hi all,
Hi,
[#1786] Is this a bug? — Clemens Hintze <clemens.hintze@...>
(mailed & posted)
[#1814] Objects nested sometimes. — Hugh Sasse Staff Elec Eng <hgs@...>
I am attemptiong to write a package which consists of a workspace
[#1816] Ruby 1.5.3 under Tru64 (Alpha)? — Clemens Hintze <clemens.hintze@...>
Hi all,
Hi,
Yukihiro Matsumoto writes:
Hi,
Hi,
[#1834] enum examples? — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone any examplse of using the Enumerable module? I've had a
[#1844] Minor irritation, can't figure out how to patch it though! — Hugh Sasse Staff Elec Eng <hgs@...>
I was considering how difficult it would be to patch Ruby to accept
[#1889] [ruby-1.5.3] require / SAFE — ts <decoux@...>
[#1896] Ruby Syntax similar to other languages? — "David Douthitt" <DDouthitt@...>
From: Yukihiro Matsumoto <matz@netlab.co.jp>
[#1900] Enumerations and all that. — Hugh Sasse Staff Elec Eng <hgs@...>
Thank you to the people who responded to my questions about Enumerated
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
On 16 Mar 2000, Dave Thomas wrote:
[#1929] Re: Class Variables — "David Douthitt" <DDouthitt@...>
| "David Douthitt" <DDouthitt@cuna.com> writes:
[#1942] no Fixnum#new ? — Quinn Dunkan <quinn@...>
Ok, I can add methods to a built-in class well enough (yes I know about succ,
[#1989] English Ruby/Gtk Tutorial? — schneik@...
Hi,
[#2022] rb_global_entry — ts <decoux@...>
[#2036] Anonymous and Singleton Classes — B_DAVISON <Bob.Davison@...>
I am a Ruby newbie and having some problems getting my mind around certain
[#2069] Ruby/GTK+ question about imlib --> gdk-pixbug — schneik@...
[#2073] Re: eval.rb fails — "Dat Nguyen" <thucdat@...>
The doc is fine, this happens only if you try to execute 'until' block
On Wed, 22 Mar 2000, Dat Nguyen wrote:
[#2084] Scope violated by import via 'require'? — Clemens Hintze <c.hintze@...>
Hi,
[#2104] ARGF or $< — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone any examples of how to use ARGF or $< as I cannot find much
Hi.
[#2165] Ruby strict mode and stand-alone executables. — "Conrad Schneiker" <schneiker@...>
Some people want Ruby to have a strict compile mode.
[#2203] Re: parse bug in 1.5 — schneik@...
[#2212] Re: Ruby/Glade usage questions. — ts <decoux@...>
>>>>> "m" == mrilu <mrilu@ale.cx> writes:
[#2241] setter() for local variables — ts <decoux@...>
[#2256] Multiple assignment of pattern match results. — schneik@...
[#2267] Re: Ruby and Eiffel — h.fulton@...
[#2309] Question about attribute writers — Dave Thomas <Dave@...>
Clemens Hintze <c.hintze@gmx.net> writes:
[ruby-talk:02053] Lockfiles
| >>> Clemens Hintze <c.hintze@gmx.net> 03/20/00 11:08PM >>>
| David Douthitt writes:
|
| ...
|
| Sorry for bothering you, but to prevent you from re-inventing the
| wheel again, there is a package 'filelock' in the contrib directory in
|
| ftp://ftp.netlab.co.jp/pub/lang/ruby/contrib/filelock.rb.
|
| Perhaps it is what you have searched?
|
| But then, nobody has told me if you like to re-invent the wheel again
| ;-)
Only sometimes :-)
Yet, I don't think your script is what I had in mind. I'm not looking
to "lock a file" - but to create a UNIX-style lockfile in
(typical example) /var/spool/locks/ - as it is under HP-UX 10.20 here.
This looks like your class LockFile but your code seems quite complex.
I'm not sure that all that is what I needed. My class Lock turned out
to be much simpler I think.
That first line is a marvel! "/bin/env ruby" ... hmmm!
Here's my code:
#!/opt/ruby/bin/ruby
class Lock
attr_accessor :locked_up, :lockdir, :lockfile
def initialize (lockf = nil)
@locked_up = false
@lockdir = "/var/spool/locks"
if (lockf == nil)
@lockfile = (@lockdir + "/" + File.basename($0) + ".lock")
else
@lockfile = (@lockdir + "/" + lockf + ".lock")
end
end
def setlock (lockf = @lockfile)
raise "Lockfile not set!" if lockf == nil;
raise "Lock failed!" if
! system("set -o noclobber ; cat /dev/null 2> /dev/null > #{lockf}")
at_exit { self.unlock }
@locked_up = true
end
def locked?
test(?e, @lockfile)
end
def Lock.locked? (lockf)
test(?e, "/var/spool/locks/" + lockf)
end
def locked
self.setlock
yield
self.unlock
end
def unlock
test(?e, @lockfile) if
raise "Unlock failed!" if
! system("rm -f #{@lockfile}");
@locked_up = false
end
end
>>> I use it this way:
mylock = Lock.new
mylock.locked {
# ....do stuff....
}
>>> or this way:
return if Lock.locked?("Oracle.lock")
>>>
What do you think?