X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f3b7e5f4b4d7c87ee3e8827313ec966ea8fc8387..8bf7ffc43ad5507982e924a7f05bbb13c89965cb:/examples/python/actor-yield/actor-yield.py diff --git a/examples/python/actor-yield/actor-yield.py b/examples/python/actor-yield/actor-yield.py index f42135ba47..36f20bd4dc 100644 --- a/examples/python/actor-yield/actor-yield.py +++ b/examples/python/actor-yield/actor-yield.py @@ -1,41 +1,32 @@ -# Copyright (c) 2017-2020. The SimGrid Team. All rights reserved. +# Copyright (c) 2017-2023. The SimGrid Team. All rights reserved. # # This program is free software; you can redistribute it and/or modify it # under the terms of the license (GNU LGPL) which comes with this package. -from simgrid import Engine, this_actor -import sys - -# This example does not much: It just spans over-polite actor that yield a large amount -# of time before ending. -# -# This serves as an example for the simgrid.yield() function, with which an actor can request -# to be rescheduled after the other actor that are ready at the current timestamp. -# -# It can also be used to benchmark our context-switching mechanism. - +""" +This example does not much: It just spans over-polite actor that yield a large amount +of time before ending. -class Yielder: - """Main function of the Yielder process""" - number_of_yields = 0 +This serves as an example for the simgrid.yield() function, with which an actor can request +to be rescheduled after the other actor that are ready at the current timestamp. - def __init__(self, *args): - self.number_of_yields = int(args[0]) +It can also be used to benchmark our context-switching mechanism. +""" - def __call__(self): - for _ in range(self.number_of_yields): - this_actor.yield_() - this_actor.info("I yielded {:d} times. Goodbye now!".format( - self.number_of_yields)) +import sys +from simgrid import Actor, Engine, Host, this_actor +def yielder(number_of_yields): + for _ in range(number_of_yields): + this_actor.yield_() + this_actor.info("I yielded {:d} times. Goodbye now!".format(number_of_yields)) if __name__ == '__main__': e = Engine(sys.argv) e.load_platform(sys.argv[1]) # Load the platform description - # Register the class representing the actors - e.register_actor("yielder", Yielder) - e.load_deployment(sys.argv[2]) + Actor.create("yielder", Host.by_name("Tremblay"), yielder, 10) + Actor.create("yielder", Host.by_name("Ruby"), yielder, 15) e.run() # - Run the simulation