mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
RDoc comments added by Elliott Hughes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e554664426
commit
75cc3e4f75
2 changed files with 144 additions and 0 deletions
70
marshal.c
70
marshal.c
|
@ -691,6 +691,32 @@ dump_ensure(arg)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* call-seq:
|
||||||
|
* dump( obj [, anIO] , limit=--1 ) => anIO
|
||||||
|
*
|
||||||
|
* Serializes obj and all descendent objects. If anIO is
|
||||||
|
* specified, the serialized data will be written to it, otherwise the
|
||||||
|
* data will be returned as a String. If limit is specified, the
|
||||||
|
* traversal of subobjects will be limited to that depth. If limit is
|
||||||
|
* negative, no checking of depth will be performed.
|
||||||
|
*
|
||||||
|
* class Klass
|
||||||
|
* def initialize(str)
|
||||||
|
* @str = str
|
||||||
|
* end
|
||||||
|
* def sayHello
|
||||||
|
* @str
|
||||||
|
* end
|
||||||
|
* end
|
||||||
|
*
|
||||||
|
* (produces no output)
|
||||||
|
*
|
||||||
|
* o = Klass.new("hello\n")
|
||||||
|
* data = Marshal.dump(o)
|
||||||
|
* obj = Marshal.load(data)
|
||||||
|
* obj.sayHello #=> "hello\n"
|
||||||
|
*/
|
||||||
static VALUE
|
static VALUE
|
||||||
marshal_dump(argc, argv)
|
marshal_dump(argc, argv)
|
||||||
int argc;
|
int argc;
|
||||||
|
@ -1332,6 +1358,17 @@ load_ensure(arg)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* call-seq:
|
||||||
|
* load( source [, proc] ) => obj
|
||||||
|
* restore( source [, proc] ) => obj
|
||||||
|
*
|
||||||
|
* Returns the result of converting the serialized data in source into a
|
||||||
|
* Ruby object (possibly with associated subordinate objects). source
|
||||||
|
* may be either an instance of IO or an object that responds to
|
||||||
|
* to_str. If proc is specified, it will be passed each object as it
|
||||||
|
* is deserialized.
|
||||||
|
*/
|
||||||
static VALUE
|
static VALUE
|
||||||
marshal_load(argc, argv)
|
marshal_load(argc, argv)
|
||||||
int argc;
|
int argc;
|
||||||
|
@ -1383,6 +1420,39 @@ marshal_load(argc, argv)
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The marshaling library converts collections of Ruby objects into a
|
||||||
|
* byte stream, allowing them to be stored outside the currently
|
||||||
|
* active script. This data may subsequently be read and the original
|
||||||
|
* objects reconstituted.
|
||||||
|
* Marshaled data has major and minor version numbers stored along
|
||||||
|
* with the object information. In normal use, marshaling can only
|
||||||
|
* load data written with the same major version number and an equal
|
||||||
|
* or lower minor version number. If Ruby's ``verbose'' flag is set
|
||||||
|
* (normally using -d, -v, -w, or --verbose) the major and minor
|
||||||
|
* numbers must match exactly. Marshal versioning is independent of
|
||||||
|
* Ruby's version numbers. You can extract the version by reading the
|
||||||
|
* first two bytes of marshaled data.
|
||||||
|
*
|
||||||
|
* str = Marshal.dump("thing")
|
||||||
|
* RUBY_VERSION #=> "1.8.0"
|
||||||
|
* str[0] #=> 4
|
||||||
|
* str[1] #=> 8
|
||||||
|
*
|
||||||
|
* Some objects cannot be dumped: if the objects to be dumped include
|
||||||
|
* bindings, procedure or method objects, instances of class IO, or
|
||||||
|
* singleton objects, a TypeError will be raised.
|
||||||
|
* If your class has special serialization needs (for example, if you
|
||||||
|
* want to serialize in some specific format), or if it contains
|
||||||
|
* objects that would otherwise not be serializable, you can implement
|
||||||
|
* your own serialization strategy by defining two methods, _dump and
|
||||||
|
* _load:
|
||||||
|
* The instance method _dump should return a String object containing
|
||||||
|
* all the information necessary to reconstitute objects of this class
|
||||||
|
* and all referenced objects up to a maximum depth given as an integer
|
||||||
|
* parameter (a value of -1 implies that you should disable depth checking).
|
||||||
|
* The class method _load should take a String and return an object of this class.
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
Init_marshal()
|
Init_marshal()
|
||||||
{
|
{
|
||||||
|
|
74
signal.c
74
signal.c
|
@ -643,6 +643,34 @@ rb_trap_restore_mask()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* call-seq:
|
||||||
|
* Signal.trap( signal, proc ) => obj
|
||||||
|
* Signal.trap( signal ) {| | block } => obj
|
||||||
|
*
|
||||||
|
* Specifies the handling of signals. The first parameter is a signal
|
||||||
|
* name (a string such as ``SIGALRM'', ``SIGUSR1'', and so on) or a
|
||||||
|
* signal number. The characters ``SIG'' may be omitted from the
|
||||||
|
* signal name. The command or block specifies code to be run when the
|
||||||
|
* signal is raised. If the command is the string ``IGNORE'' or
|
||||||
|
* ``SIG_IGN'', the signal will be ignored. If the command is
|
||||||
|
* ``DEFAULT'' or ``SIG_DFL'', the operating system's default handler
|
||||||
|
* will be invoked. If the command is ``EXIT'', the script will be
|
||||||
|
* terminated by the signal. Otherwise, the given command or block
|
||||||
|
* will be run.
|
||||||
|
* The special signal name ``EXIT'' or signal number zero will be
|
||||||
|
* invoked just prior to program termination.
|
||||||
|
* trap returns the previous handler for the given signal.
|
||||||
|
*
|
||||||
|
* Signal.trap(0, proc { puts "Terminating: #{$$}" })
|
||||||
|
* Signal.trap("CLD") { puts "Child died" }
|
||||||
|
* fork && Process.wait
|
||||||
|
*
|
||||||
|
* produces:
|
||||||
|
* Terminating: 27461
|
||||||
|
* Child died
|
||||||
|
* Terminating: 27460
|
||||||
|
*/
|
||||||
static VALUE
|
static VALUE
|
||||||
sig_trap(argc, argv)
|
sig_trap(argc, argv)
|
||||||
int argc;
|
int argc;
|
||||||
|
@ -681,6 +709,15 @@ sig_trap(argc, argv)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* call-seq:
|
||||||
|
* Signal.list => a_hash
|
||||||
|
*
|
||||||
|
* Returns a list of signal names mapped to the corresponding
|
||||||
|
* underlying signal numbers.
|
||||||
|
*
|
||||||
|
* Signal.list #=> {"ABRT"=>6, "ALRM"=>14, "BUS"=>7, "CHLD"=>17, "CLD"=>17, "CONT"=>18, "FPE"=>8, "HUP"=>1, "ILL"=>4, "INT"=>2, "IO"=>29, "IOT"=>6, "KILL"=>9, "PIPE"=>13, "POLL"=>29, "PROF"=>27, "PWR"=>30, "QUIT"=>3, "SEGV"=>11, "STOP"=>19, "SYS"=>31, "TERM"=>15, "TRAP"=>5, "TSTP"=>20, "TTIN"=>21, "TTOU"=>22, "URG"=>23, "USR1"=>10, "USR2"=>12, "VTALRM"=>26, "WINCH"=>28, "XCPU"=>24, "XFSZ"=>25}
|
||||||
|
*/
|
||||||
static VALUE
|
static VALUE
|
||||||
sig_list()
|
sig_list()
|
||||||
{
|
{
|
||||||
|
@ -748,6 +785,43 @@ init_sigchld(sig)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Many operating systems allow signals to be sent to running
|
||||||
|
* processes. Some signals have a defined effect on the process, while
|
||||||
|
* others may be trapped at the code level and acted upon. For
|
||||||
|
* example, your process may trap the USR1 signal and use it to toggle
|
||||||
|
* debugging, and may use TERM to initiate a controlled shutdown.
|
||||||
|
*
|
||||||
|
* pid = fork do
|
||||||
|
* Signal.trap("USR1") do
|
||||||
|
* $debug = !$debug
|
||||||
|
* puts "Debug now: #$debug"
|
||||||
|
* end
|
||||||
|
* Signal.trap("TERM") do
|
||||||
|
* puts "Terminating..."
|
||||||
|
* shutdown()
|
||||||
|
* end
|
||||||
|
* # . . . do some work . . .
|
||||||
|
* end
|
||||||
|
*
|
||||||
|
* Process.detach(pid)
|
||||||
|
*
|
||||||
|
* # Controlling program:
|
||||||
|
* Process.kill("USR1", pid)
|
||||||
|
* # ...
|
||||||
|
* Process.kill("USR1", pid)
|
||||||
|
* # ...
|
||||||
|
* Process.kill("TERM", pid)
|
||||||
|
*
|
||||||
|
* produces:
|
||||||
|
* Debug now: true
|
||||||
|
* Debug now: false
|
||||||
|
* Terminating...
|
||||||
|
*
|
||||||
|
* The list of available signal names and their interpretation is
|
||||||
|
* system dependent. Signal delivery semantics may also vary between
|
||||||
|
* systems; in particular signal delivery may not always be reliable.
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
Init_signal()
|
Init_signal()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue