Commits on Feb 23, 2016
Commits on Feb 5, 2016
  1. Hello version 2.5.1

    committed Feb 5, 2016
Commits on Feb 4, 2016
  1. Merge pull request #9 from lrascao/fix/destroy_spec

    Add missing pid spec argument to destroy method
    committed Feb 4, 2016
  2. @lrascao
Commits on Jun 9, 2015
Commits on May 15, 2015
  1. Adapt the Codel test case.

    committed May 15, 2015
Commits on May 14, 2015
  1. Bump the version to 2.5.0.

    committed May 14, 2015
  2. Spawn a process to run the command for enqueuing while full.

    The problem is that if we have a non-blocking call, it is run on the "main" process
    of EQC. Thus, the process is never terminated, and as a result, we don't capture
    the problem where a spurious 'DOWN' message comes into the SUT. Add a test
    case where the call is run on it's own process to plug this hole.
    committed May 14, 2015
  3. Adapt the code base to R18+ Time API.

    Timestamps now force the use of a unique integer. While far from
    perfect, it obeys the old rules of the queues and thus it works the
    same way as before. The speed is exactly as slow as before, by relying
    on something like erlang:now().
    
    While here, go through all the CoDel code and fix up the code base.
    committed May 14, 2015
  4. Fix Issue #5 — Force ETS state tracking.

    In the new code, we can survive the death of a queued process, because we
    track all processes in the system, also the ones which are currently queued.
    However, the code did not account for the case where a process gets monitored
    but is immediately rejected because the queue is full. This means that the
    invariant of monitor → table entry was broken. The fix is to correctly
    monitor/demonitor based on the table state.
    committed May 14, 2015
  5. Add a helper target for rebar3.

    committed May 14, 2015
  6. Add a time compatibility layer.

    committed May 14, 2015
  7. Merge pull request #6 from lrascao/feature/support_dynamic_queues

    Support dinamically created queues
    committed May 14, 2015
  8. Merge pull request #7 from essen/patch-1

    Make compatible as a dep for erlang.mk
    committed May 14, 2015
  9. @essen

    Make compatible as a dep for erlang.mk

    Default target should build the project without requiring to have EQC installed.
    essen committed May 14, 2015
Commits on Apr 8, 2015
  1. @lrascao

    Support dinamically created queues

    introduce sv:new/2, new/1 methods that allow dynamic
    creation of named or anomymous queues, each with a
    separate configuration
    lrascao committed Apr 7, 2015
Commits on Mar 8, 2015
  1. Simplify the ChangeLog

    There is no reason to write X → Y when it is always a linear transition.
    committed Mar 8, 2015
  2. Fix Issue #1

    Uses the new ETS tracking table to track and monitor all processes, also while queuing. Correctly remove processes that are killed during queueing. Also update the QuickCheck model with a new kind of process kill.
    committed Mar 8, 2015
  3. Two simple typos fixed: found by quickcheck.

    queued → queueing
    QT:delete/3 → QT:remove/3
    committed Mar 8, 2015
  4. Change reference tracking to work over the lifetime of an interaction.

    We now set a monitor for any process we work with. This should allow
    us to make the case for the case where we lose a process while it is
    queued in the system.
    committed Mar 8, 2015
  5. Track currently working tasks separately from the ETS table.

    This change refactors the code such that the number of currently working
    tasks are handled by a separate counter. In the future, this allows us to store
    references of other kinds in the task table, which is sorely needed.
    committed Mar 8, 2015
  6. Change the internal working representation from a gb_set into ETS.

    A couple of reasons why we want an ETS table for tracking information about
    who are currently working:
    
    * It is much faster
    * It acts well, even if we end up loading the system with many workers
    * It allows us to store a process for its whole total lifetime of interaction with our system. This is necessary in the long run for this project.
    committed Mar 8, 2015
Commits on Mar 6, 2015
  1. Improve the Chaos Monkey™ kill jobs in the asking state.

    This branch is an attempt at identifying Issue #1. We arrange it such that we
    can kill jobs which are currently 'asking' for the ability to run. This leads to
    severe inconsistency between the model and the underlying implementation.
    
    The right solution is really a question of semantics, and we don't a priori know
    what the right course of action happens to be.
    committed Mar 6, 2015
  2. Path correction for EQC-CI.

    committed Mar 6, 2015
  3. QuickCheck-CI driver.

    committed Mar 6, 2015
  4. Documentation run.

    committed Mar 6, 2015
  5. Hoist a common prefix out of a case.

    I think this is easier to read for the next reader and it is also easier to manipulate
    later on, so lets do it this way instead.
    committed Mar 6, 2015
  6. Formatting run.

    committed Mar 6, 2015
  7. Handle killing work randomly.

    Use exit/2 to kill the Pid which is doing work and then update the task runner to handle this correctly.
    committed Mar 6, 2015
Commits on Mar 1, 2015
  1. Introduce the replenish command.

    Add a rate to the model. Replenish is simple, because we just compute how
    many processes are woken up and then proceed to unblock them one-by-one in
    the system. This moves the state forward as expected and we obtain the ability
    to carry out token replenishment.
    committed Mar 1, 2015