1. 02 Apr, 2013 5 commits
  2. 01 Apr, 2013 9 commits
  3. 31 Mar, 2013 5 commits
  4. 30 Mar, 2013 3 commits
  5. 29 Mar, 2013 5 commits
  6. 28 Mar, 2013 1 commit
  7. 27 Mar, 2013 4 commits
  8. 26 Mar, 2013 1 commit
  9. 25 Mar, 2013 3 commits
  10. 24 Mar, 2013 1 commit
  11. 22 Mar, 2013 1 commit
  12. 18 Mar, 2013 1 commit
    • Jonas Holmberg's avatar
      tests: fix spurious failure in test_collect collectpads test · afbba897
      Jonas Holmberg authored
      pop() in collected callback.
      
      There were three threads in the test cases that hanged: the test thread and two
      threads that push buffers. Each thread push one buffer on one pad. There are
      two pads in the collectpads so the second buffer will trigger the
      collect-callback.
      
      This is what happens when the hang occurs:
      
      The first thread pushes a buffer and initializes a cookie to the value of a
      counter in the collectpads object and waits on a cond for the counter to change
      and for someone to consume the buffer (i.e. _pop() it).
      
      The second thread pushes a buffer and calls the collected callback, which
      signals the cond that the test thread is waiting for.
      
      The test thread pops both buffers (without holding any lock). Each call to
      _pop() increases the counter broadcasts the condition that the first thread is
      now waiting for. It then joins both threads (hangs).
      
      The first thread wakes up and returns, since its buffer has been consumed.
      
      The second thread starts executing again. When the callback, called by the
      second thread, has returned it initializes a cookie to the value of a counter,
      which has already prematurely been increased by the test thread when it popped
      the buffers, and wait's on a cond for the counter to change and for someone to
      consume the buffer (i.e. _pop() it). Since the buffer has already been poped
      and the counter has already been increased it will be stuck forever.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=685555
      afbba897
  13. 16 Mar, 2013 1 commit