Skip to content
Snippets Groups Projects
This project is mirrored from https://www-csr.bessy.de/control/SoftDist/sequencer/repo/branch-2-2.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
  1. Oct 07, 2013
  2. Mar 28, 2014
    • benjamin.franksen's avatar
      bugfix: do not call seq_monitor in pvAssign but reset dbch->monid [amended for branch-2-2] · 552d01c6
      benjamin.franksen authored
      The problem was a call seq_monitor(ch, FALSE) inside pvAssign after we
      destroy the channel (if one exists). This will always fail (strange I
      never noticed that) and as a result dbch->monid would not be reset to
      NULL. That in turn means when the channel is re-assigned and connects,
      seq_monitor(ch, TRUE) will not do anything because it thinks there is
      already a valid subscription.
      
      The fix is to remove the call and instead only reset dbch->monid to NULL.
      552d01c6
  3. Sep 26, 2013
    • benjamin.franksen's avatar
      seq: simplified pvPut and pvGet implementation · b0a805a9
      benjamin.franksen authored
      Instead of using per channel semaphores to check for completion, the
      new implementation uses the request pointer. A NULL pointer means that
      no request is pending, i.e. either the request was cancelled or it
      completed sucessfully or we lost connection to the PV. The CA callback
      resets the request pointer before signalling to the state set where the
      request originated, that /some/ event happened. This re-uses the the
      existing sync semaphore. ASYNC operations no longer use a semaphore at
      all, only the SYNC variants do. However, it becomes even more important
      to check whether a disconnect happened, since this is "some event", too,
      i.e. it causes pending requests to be cancelled.
      b0a805a9
    • benjamin.franksen's avatar
      seq: changed pvSevr for timeout, disconnect, and failure to pvSevrERROR · 80966042
      benjamin.franksen authored
      The standard EPICS severities (NO_ALARM, MINOR, MAJOR, INVALID) should be
      reserved for the actual severity of the underlying PV which we get via CA.
      80966042
    • benjamin.franksen's avatar
      seq: fixed a bug in pvXxxCancel and pvXxxComplete · cdaf71ab
      benjamin.franksen authored
      I forgot to add the array index to the varId when iterating
      over a multi-PV array.
      cdaf71ab
    • benjamin.franksen's avatar
      seq: fixed broken indentations · 8cffe5af
      benjamin.franksen authored
      8cffe5af
  4. Sep 24, 2013
  5. Sep 19, 2013
  6. Jul 12, 2013
  7. Jul 10, 2013
  8. Jul 03, 2013
    • benjamin.franksen's avatar
      seq: fix problem with synchronous pvPut/pvGet · 9d8e1bbe
      benjamin.franksen authored
      The problem was that that once a synchronous request times out, the
      variable would never recover from the timeout state. This was because
      the semaphores would not be signalled on timeout. However, in order
      to correctly discard events (i.e. callbacks from CA) that belong to
      timed out requests, we have to remember them. This is what the getReq
      and putReq arrays in struct state_set are for.
      
      The fix assumes that CA will eventually call the callback for each
      accepted request, even if the channel disconnects. If the assumption is
      wrong then we have a memory leak.
      9d8e1bbe
  9. Jul 24, 2012
  10. Dec 17, 2012
  11. Aug 20, 2012
  12. Aug 14, 2012
  13. Jul 24, 2012
  14. Jun 13, 2012
  15. Mar 29, 2012
  16. May 14, 2012
  17. Apr 10, 2012
    • Ben Franksen's avatar
      seq: fix pvPut/pvGet hanger on disconnect · 4c5dd724
      Ben Franksen authored
      The connection handler now releases all semaphores waiting for an
      event on this PV. Furthermore, the pvGet/pvPut[Complete] built-in
      functions check the connected status whenever they successfully waited
      for such a semaphore.
      
      This patch also fixes a few problems with error handling in these
      procedures; for instance, the SYNC versions released semaphores even
      in case of timeout, which is definitely wrong.
      4c5dd724
  18. Mar 27, 2012
    • benjamin.franksen's avatar
      seq: optimized ss_read_buffer_selective · 3ce259ff
      benjamin.franksen authored
      Each event flag now knows the channels which are synced to it.
      This is a singly linked list of channel pointers. Since each channel
      can be synced to at most one event flag, we can embed the list nodes
      into the channel structure, so no runtime allocation is needed.
      The pvSync builtin function must now update these lists, while
      ss_read_buffer_selective traverses them.
      3ce259ff
  19. Mar 26, 2012
    • benjamin.franksen's avatar
      seq: fixed the 'lost events bug' in safe mode · 11136991
      benjamin.franksen authored
      The fix is to declare efTest and efTestAndClear to be synchronization
      points in safe mode. Both now check whether any of the variables sync'ed
      with the event flag have been changed (have their dirty flag set) and
      update the state set local copy of these variables. This happens
      regardless of whether the call is part of a when() condition or inside
      an action block.
      11136991
  20. Mar 02, 2012
  21. Feb 23, 2012
  22. Jan 16, 2012
  23. Aug 15, 2011
  24. Aug 12, 2011
Loading