mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 15:22:31 +01:00
Date:2010-12-02T23:08:44.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@710 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
54 lines
1.4 KiB
Plaintext
54 lines
1.4 KiB
Plaintext
[[Property:title|Example: Sleep]]
|
|
[[Property:weight|0]]
|
|
==Description==
|
|
|
|
Write a program that does the following in this order:
|
|
# Input an amount of time to sleep in whatever units are most natural for your language (milliseconds, seconds, ticks, etc.). This unit should be noted in comments or in a description.
|
|
# Print "Sleeping..."
|
|
# Sleep the main thread for the given amount of time.
|
|
# Print "Awake!"
|
|
# End.
|
|
|
|
==Notes==
|
|
|
|
The feature <code lang="eiffel">sleep</code> is defined in the library class <code>EXECUTION_ENVIRONMENT</code>. So the demonstration class <code>APPLICATION</code> inherits from <code>EXECUTION_ENVIRONMENT</code> in order to make <code lang="eiffel">sleep</code> available.
|
|
|
|
<code lang="eiffel">sleep</code> takes an argument which declares the number of nanoseconds to suspend the thread's execution.
|
|
|
|
==Source==
|
|
|
|
Problem description from [http://rosettacode.org/wiki/Sleep Rosetta Code]
|
|
|
|
==Solution==
|
|
|
|
<code>
|
|
class
|
|
APPLICATION
|
|
inherit
|
|
EXECUTION_ENVIRONMENT
|
|
create
|
|
make
|
|
feature -- Initialization
|
|
make
|
|
-- Sleep for a given number of nanoseconds.
|
|
do
|
|
print ("Enter a number of nanoseconds: ")
|
|
io.read_integer_64
|
|
print ("Sleeping...%N")
|
|
sleep (io.last_integer_64)
|
|
print ("Awake!%N")
|
|
end
|
|
end
|
|
</code>
|
|
|
|
|
|
==Output (sleeping 10 seconds)==
|
|
|
|
<code lang="text">
|
|
Enter a number of nanoseconds: 10000000000
|
|
Sleeping...
|
|
Awake!
|
|
</code>
|
|
|
|
|