code: def _process_zero_length(self, nozero, allow_arbitrary_shift):
          
          self.log(u"Called _process_zero_length")
          if not nozero:
              self.log(u"Processing zero length intervals not requested: returning")
              return
          self.log(u"Processing zero length intervals requested")
          self.log(u"  Checking and fixing...")
          duration = self.rconf[RuntimeConfiguration.ABA_NO_ZERO_DURATION]
          self.log([u"  Requested no zero duration: %.3f", duration])
          if not allow_arbitrary_shift:
              self.log(u"  No arbitrary shift => taking max with mws")
              duration = self.rconf.mws.geq_multiple(duration)
          self.log([u"  Actual no zero duration: %.3f", duration])
          # ignore HEAD and TAIL
          max_index = len(self.smflist) - 1
          self.smflist.fix_zero_length_fragments(
              duration=duration,
              min_index=1,
              max_index=max_index
          )
          self.log(u"  Checking and fixing... done")
          if self.smflist.has_zero_length_fragments(1, max_index):
              self.log_warn(u"  The fragment list still has fragments with zero length")
          else:
              self.log(u"  The fragment list does not have fragments with zero length")
docs: If ``nozero`` is ``True``, modify the sync map fragment list
          so that no fragment will have zero length.