1. 26 Jul, 2016 1 commit
  2. 12 Jun, 2015 1 commit
  3. 19 Aug, 2014 2 commits
  4. 18 Aug, 2014 2 commits
  5. 09 May, 2014 1 commit
  6. 25 Apr, 2014 1 commit
    • Andrew Wedgbury's avatar
      test: Add test showing blocking problem when updating timers · 74df22be
      Andrew Wedgbury authored
      I've noticed a blocking problem in Wayland's event-loop code when updating
      timer event sources. The problem occurs if you update the timer at a point
      after is has expired, but before it has been dispatched, i.e. from an event
      callback that happens during the same epoll wakeup.
      
      When the timer is subsequently dispatched, wl_event_source_timer_dispatch
      blocks for the duration of the new timeout in its call to read() from the
      timer fd (which is the expected behaviour according to the man page for
      timerfd_settime).
      
      This isn't too uncommon a scenario - for example, a socket with an associated
      timeout timer. You'd typically want to update the timer when reading from the
      socket. This is how I noticed the issue, since I was setting a timeout of
      1 minute, and saw my server blocking for this duration!
      
      The following patch adds a (currently failing) test case to Wayland's
      event-loop-test.c. It demonstrates the problem using two timers, which are
      set to expire at the same time. The first timer to receive its expiry
      callback updates the other timer with a much larger timeout, which then
      causes the test to block for this timeout before calling the second timer's
      callback.
      
      As for a fix, I'm not so sure (which is why I thought I'd post the failing
      test case first to show what I mean). I notice that it doesn't actually do
      anything with the value read from the timerfd socket, which gives the number
      of times the timer expired since the last read, or when the timer was last
      updated (which blocks if the timer hasn't yet expired). I believe this value
      should always read as 1 anyway, since we don't use periodic timers.
      
      A simple fix would be to use the TFD_NONBLOCK option when creating the
      timerfd, ensuring that the read call won't block. We'd then have to ignore
      the case when the read returns EAGAIN.
      74df22be
  7. 15 Jan, 2014 1 commit
  8. 02 Jul, 2013 1 commit
    • Kristian H. Kristensen's avatar
      server: Make wl_object and wl_resource opaque structs · d94a8722
      Kristian H. Kristensen authored
      With the work to add wl_resource accessors and port weston to use them,
      we're ready to make wl_resource and wl_object opaque structs.  We keep
      wl_buffer in the header for EGL stacks to use, but don't expose it by
      default.  In time we'll remove it completely, but for now it provides a
      transition paths for code that still uses wl_buffer.
      
      Reviewed-by: Jason Ekstrand<jason@jlekstrand.net>
      d94a8722
  9. 15 Jan, 2013 1 commit
  10. 11 Jan, 2013 1 commit
  11. 30 Jun, 2012 1 commit
    • Dylan Noblesmith's avatar
      tests: fix make check for out-of-tree builds · b486e3ab
      Dylan Noblesmith authored
      It was failing with missing include files.
      
      While here, destroy the ugly "../src/..." include
      paths used in the tests that was just hacking around
      this problem in the Makefile:
      
      sed -i s/..\\/src\\/// tests/*.c
      b486e3ab
  12. 08 May, 2012 4 commits
  13. 20 Apr, 2012 1 commit
  14. 21 Mar, 2012 1 commit
  15. 20 Mar, 2012 1 commit
  16. 31 Aug, 2011 1 commit
    • Kristian H. Kristensen's avatar
      Remove the wl_visual interface · c640571c
      Kristian H. Kristensen authored
      The visual interface was meant to be a generic mechanism for
      specifying the content of a buffer.  It goes back to before we had the
      buffer factory interfaces (like wl_drm and wl_shm) and we wanted to
      keep it open-ended enough that yuv, png or even svg buffer or so would
      be possible.
      
      Now that we have the buffer abstraction, we can add different buffer
      types by introducing new interfaces that create buffers.  It only
      makes sense to leave it to those interfaces to specify the contents of
      the buffers.
      
      For wl_shm, this means that we now just specify the pixel format using
      an enum.  For EGL buffers, the exact pixel formats are controlled by
      the implementation (part of wl_drm and similar), and from the client
      point of view, everything is controlled using EGLConfigs.
      c640571c
  17. 12 Aug, 2011 1 commit
  18. 18 Apr, 2011 1 commit
  19. 09 Feb, 2011 1 commit
  20. 08 Feb, 2011 1 commit
  21. 07 Feb, 2011 1 commit
    • Benjamin Franzke's avatar
      Add wayland-egl.h · 66cea0ad
      Benjamin Franzke authored
      This header defines native EGL wayland types and affiliated
      initialization, processing and destruction routines.
      EGL implementations must implement this API in order to allow
      applications using this native types for the EGL implementation.
      66cea0ad