Skip to content

ContextScheduler: multithread and timer problems #34

@ghost

Description

Encountered dubious flaky behaviour with some of the more complex wallclock-time observable ops like .debounce() and when using .subscribeOn() and .observeOn(). I traced the problems to ContextScheduler just not being quite right (IMHO)

  • you really have to save the vertx context and do your vertx ops on it, otherwise they tend to silently fail when the context is null. Stashing the context allows enqueueing of actions from other threads.
  • .schedule()/.schedulePeriodically() are supposed to return individually cancellable subscriptions that don't necessarily cancel the whole worker. Things like .debounce() apparently rely on the individual schedule subscription being cancellable without cancelling the entire worker.
  • vertx api deliberately rejects delays/periods < 1 msec, but rxjava really expects them to work

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions