Ticket #60 (closed feature: implemented)

Opened 4 years ago

Last modified 4 years ago

Replaceable main loop

Reported by: tim Owned by: tim
Priority: major Milestone: 0.3
Component: Fawkes Version:
Keywords: Cc:
Git Branch:

Description

Currently we have two main loops, which can be enabled by a compile time switch. Both main loops offer the very same layout, but one is with time tracker support to get times of different loop steps.

In the future we might want to have completely different main loops, like one with the vision running concurrent to the rest of the program. Also the possibility to just enable the benchmarking main loop at runtime for a couple of loops could help debugging a lagging plugin thread.

The solution is to define a MainLoop interface class which is used in the main application and comes with the current loop as the default main loop. A MainLoopAspect has to be added that allows for replacing the current main loop (with a uniqueness constraint, only one thread may replace the main loop at a time).

Special care has to be taken about loop locking and it has to be investigated if and how this can be done in a useful manner. As a test case the mentioned benchmarking loop should be implemented as a plugin.

Change History

Changed 4 years ago by tim

  • status changed from new to assigned

Changed 4 years ago by tim

  • status changed from assigned to closed
  • resolution set to implemented

Implemented in r1333 and 1334, example plugin in r1335/r1336.

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Subscriber, Participant

  • Fawkes Trac List(Always)
  • Tim Niemueller(Reporter, Owner, Participant)