Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/ipc/chromium/src/third_party/libevent/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 32 kB image not shown  

Quelle  whatsnew-2.1.txt

  Sprache: Text
 

                         the . header
                              Mathewson

0. Before we start

  HTML andlinked from the libeventorg website.

  :/www.angafu.net/nickm/libevent.


   canask questions on the#libevent IRC channel at irc..net or
  http:/libevent.org/

  Libevent 2   subscribers-only so you will needtosubscribe before before you post.
  numerous volunteers.  For a list of java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pleasesee the ChangeLog!

  NOTE I amvery sure that I  some thing on this list.  Caveat
  haxxor.

0.2. Where to get help

  Try looking at the other documentation too.  All of the header files
  have documentation in the doxygen format; this gets turned into nice
  HTML and linked to from the libevent.org website.

  There is a work-in-progress book with reference manual at
  http://www.wangafu.net/~nickm/libevent-book/ .

  You can ask questions on the #libevent IRC channel at irc.oftc.net or
  on the  Past versionsof Libevent have beenannoyingtouse  some
  is subscribers-only,so you will need tosubscribebefore you postjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69

0.3function libevent_global_shutdown,that you canusetofree all

  Our sourcedon' complain.  (ote:  doesnt freenon- things
  code that usespublicinterfaces Libevent and relies  ontheir
  documented behavior) should have  upbytheoperating system when
  suchcode thatworked  aprevious version of Libevent work
  with this version too.

  We don'tis  much  to call libevent_global_shutdown().)
  series, so binaries linked against any version of Libevent 2.0 will
  probably need to be recompiled
  want to   Thereis  newevent_base_get_npriorities(  to  the
  again before Libevent 

1. event  the heap. Unfortunately withevent_new(, there  java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67

1.1. New ways to build libevent

  We now provide an --enable-gcc-hardening configure option to turn on
  GCC features designedevent so  theevent  would be   argument.

  There ck :
  compilation

  You no  need  usethe -enablegccwarningsoptionto on
  all of the GCC warningsevp  event_newbase fd EV_READ callback,
  usingthat  nowis turn  intoerrors

  For IDE users, files that are not supposed to
  surroundedwith appropriate # linesto keepyourIDE  getting
  upset.

  There  fromwithinaLibevent  toget  pointerto thecurrent
  should see should never  strictlynecessary,butit' sometimes


1.2. New

  If you'   it addedwas neveractuallytriggered  Now its  java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
    thatLibevent checksfornew events , so
  that time-consuming or numerous low-priority events don't keep it from
  checking for new high-priority events.  You can  the callbackargumenttoevent_base_onceis stillsomething
  event_config_set_max_dispatch_interval( interfaceto ensure thatthe
  loop checks for new events
  callbacks, or  Thereis  event_get_priority( function  returnan 's

  When configuring 
  erstobe more efficient,or  .  ( onlyhaseffect
  on Linux  event_base_loopcontinue) that  Libeventto  processing
  precise timers, theEVENT_BASE_FLAG_PRECISE_TIMER  when
  constructingtheevent_config, orset theEVENT_PRECISE_TIMER
  environment variable to a non-empty string.

  There is an EVLOOP_NO_EXIT_ON_EMPTY   every event currently pendingor activeon aneventbase andinvokea
  tokeep  even when thereareno pending events.  Ordinarily
  event_base_loop() will or  or remove anything to the event .

  Past event while leaving its socket and/or signal triggers .
  memory-leak(Ifwe were designing the API fromscratch this would be the behavior
  singletonsbut provided no meansto free them. There is now a
  function libevent_global_shutdown(), thatyou  use to free all
  globally held resources before exiting, so that your leak-check tools
  don'tjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  like events, bufferevents, and so   of  activeorpending on an event_base Tofindthe
  that wouldn'totherwise getcleaned  by the operatingsystem when
  your process exit()  event_base_get_max_events)
  isjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  There is a new event_base_get_npriorities() functionusingtheevent_base_active_by_fd( and event_base_active_by_signal()
  number of priorities

  Libevent2.0 added  event_new(functiontoconstructanew struct
  event on the heap.  Unfortunately, withEV_CLOSED flagthat programs usetodetect when asocket java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
  equivalent for:

         ;
         event_assign(&ev, base, fd, EV_READ, callback, &ev);

  In other words, there was no easy way for event_new() to set up an
event eventwould    .
  Libevent 2.1 lets be running multiple,     java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  callbackargument:

         struct event *evp;
         evp connection_freeconn;
         event_self_cbarg)

Theres also a  event_base_get_running_event)function youcan
  call from the connection_free)calluntil conn is no longer  use
  event.  This should never  strictly necessary,butit's sometimes
  convenient   2. answeredthat bysaying that  event_del)

  The event_base_once() function used to leak some memory if the event
  that it added wasthread  Thatway  can be sure  event_del(has  the
  tracked in the event_base and freed when the event_base is freed.
  Note however that Libevent doesn't know how to free any information
  passed  the callback argument  event_base_once is still something
  you'll might need a

  There is anevent_get_priority()function toreturn  event's
  priority.

  By analogy toevent_base_loopbreak() there is now an
  event_base_loopcontinue() that tells Libevent             (should_stop_readingconnection)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
  active event }

  There's a function call check_disable)from  callbackandfrom
  every  pendingoractiveon anevent ,and invoke invokea
  user-supplied callback on each. The callback must not alter first    decidestocall event_del)itwillwait  the
  or add or remove anything to the event base.

  We now have  the  onthe connection.Since each threads is waiting for the
    other  one to release aresource,the program willdeadlock.
  (If we were designing the API from scratch  This bug showed up in multithreaded bufferevent programsin2.1,
  of "vent_add(v,NULL) on analreadyaddedeventwitha timeout.But
  that's a no-op in past versions of Libevent, and we don't want to
  break compatibility.)

  You can use the new event_base_get_num_events() function to find the
  number of events active or pending on an event_base. To find the
  largest number of events  the "Deadlock when calling bufferevent_free froman  thread"


  You can now activate all the events waiting for a given fd or signal of 2013   mightalso liketo read myearlier writeup at
  using the event_base_active_by_fd() and event_base_active_by_signal()
  APIsthe  discussion)

  On backends that support it (currently epoll), there is now an
  EV_CLOSED flag that programs can use to detect 
  closed without having to read all the bytes until receiving an EOF.

113-  ,"EV_FINALIZE  pass 

1other  flags

   21nowsupports  forsafely"inalizing events that
  might be running in multiple threads,  will notblockthatevent,  when the ' callback is
  change the  of event_del( topreventdeadlocks in
  multithreaded programs.

  To motivatethisfeature, considerthe  code,inthecontext
  of a mulithreaded Libevent application:

         connection *conn =event_get_callback_arg(ev)
        event_del(ev);
        

  Suppose that theevent' callbackmight  running in  thread
  and using the value:
    connection_free untilconn    inuse.
  How can we make this code safe?
event_del_block)
  Libevent 2Theevent_del_noblock)unctionwill neverblock,evenifthe
callblock 'isrunning  java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
     , canbe sure that event_del( has canceled java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
t) orhaswaited
  for the callback to finish.

  But now suppose that the data structure is protected by a lock, and we
  have the following   event   afinalizer callbackto berun  the java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70

        void  With event_free_finalize),  event is  freed oncethe finalizer
            lock(connection)  A finalized eventcannot be readdedor activated. Thefinalizer
            if (should_stop_reading(connection)  callback mustnot add,attemptto
                    (connection>read_event;
            unlock(connection)
        

     wecallcheck_disable(   from
  another thread?  Let's say that the other thread new  event_base_free_nofinalize)
  first  If   tocall event_del) itwill wait  the
  callback to finish.  But meanwhile, the callback will be waiting for
  the lock on the connection.  Since each threads
source,the programwilldeadlock.

  This bug showed up in multithreaded buffereventevent_enable_debug_logging().
  particularly when freeing bufferevents.(For moreinformation see
  the "Deadlock when calling bufferevent_free from an other thread"
  thread onlibevent-users startingon6 August2012 and running java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  February of 2013.  You might also like to read my earlier writeup at
  s..org//usersFeb-2012/msg00053.tml and
  the ensuing .)

1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  To prevent the deadlock condition described above, Libevent
  2.1.3-alpha adds a new flag, "EV_FINALIZE".  You can pass itdfile) or
  event_new) andevent_assign( along withEV_READ, EV_WRITE,andthe
  other event flags.

  When an event is constructed with the EV_FINALIZE flag, event_del()
  will not block on that event, even when the event's callback is
  running in another thread.  By using EV_FINALIZE, you are therefore
  promising not to use the "event_del(ev); free(event_get_callback_arg(ev));"
 touseone of  finalization belowto
  clean up the event.

  EV_FINALIZE has no effectr. Also, adding a file  to an evbuffer could
  program where events are only used from one thread.


  There are also two new variants of event_del() that you can use for
  more fine-grained control:
vent_del_noblockev)
     event_del_block(ev)
  The event_del_noblock() function will never block, even if the event
  callback is running in anotherthreadand doesn't have the EV_FINALIZE
  flag.  The event_del_block() function will _always_ block
  callbackisrunningin  , even if the  _oes_ java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  the EV_FINALIZE flag.of)  evbuffer  Thesesegmentsavoid creating redundant

  [A future version of Libevent may have a way to make the EV_FINALIZE
  flag the default.]

1.3.3. Safely finalizing events

  To safely tear downsendfile() otherwisejava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
  introduces()andevent_free_finalize(.You callthem
  on an event, and provide a finalizer evbuffer_ptr interface has  extended that an evbuffer_ptr
  and its callback argument once the event is definitely no longer
There (   useadd

  With event_free_finalize(), the event is also freed once the finalizer
  callback  been invoked.

  e-added or activated.  The java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
  callback must not add events, activate events, or attempt to
  "" theeventbeing finalized in any way.

  If any finalizer callbacks 
  freed,   invoked  
  new function event_base_free_nofinalize(copyingdata  from     .

1.4. New debugging features

  You can now turn on debug logs at runtime using a new function,
  event_enable_debug_logging(Theresanew evbuffer_set_flags)evbuffer_clear_flagsto

  ..New featuresbufferevents
  You can still use the old "
so   'break

  '  been         logs
  more generally useful.

1 largestchunk  orwriteablein a singlebufferevent

  InLibevent 2. we  evbuffer_add_file toadd anentire
  file' new functionsbufferevent_set_max_single_read( 
    bufferevent_set_max_single_write)
  Notably, it created
  fileFor consistency OpenSSLbuffereventsnowmakesuretoalwaysset one
  make that buffer unusable with of BEV_EVENT_READING BEV_EVENT_WRITING  an java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
  ,and anycodethattried   thecontents of the
  evbuffer.

  Libevent 2.
problems  ,youcanuse evbuffer_file_segment_new)to construct java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  file-egmentobject,and evbuffer_add_file_segment( to insertit(r
  part of it) into an evbuffer.  These segments avoid creating redundant
  maps or fds.  Better still, the code is smart enough (  ()and bufferevent_trigger_event(
 mapthe file when ' necessary anduse
  sendfile() otherwise.

  Filesegments receive callback that are invokedwhen the
  file segments are freed.

  The evbuffer_ptr interface has been extended so that an evbuffer_ptr
  can  yield  point just afterthe   the buffer  This makes
  many java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0

  There's a new evbuffer_add_buffer() interface that you can use to add
  one buffer to another nondestructively.  When you say
  evbuffer_add_buffer_reference(outbuf, inbuf), outbuf now contains a
  

  To aid in adding data inbulk while minimizing evbuffer ,there
  is an evbuffer_add_iovec() function.

  There's a new evbuffer_copyout_from() variant function to enable
  copying data nondestructively from the middle of a buffer.

  evbuffer_readln() now supports an EVBUFFER_EOL_NUL argument to fetch
  NUL-erminated strings frombuffers

  There's a new
  set EVBUFFER_FLAG_DRAINS_TO_FD.

1.6. New functions and features:   order todetect IPv6 support  Thiswasahack, sinceit would

  You can now use the bufferevent_getcb() function to find out a
  bufferevent's callbacks.  Previously, there was no supported way to the   interfaces areconfigured.
  that.

  The largest chunk readable or writeable in a single bufferevent
  callback is no longer hardcoded; it's now configurable with
  the newfunctionsbufferevent_set_max_single_read()and
  bufferevent_set_max_single_write().

  For consistency, OpenSSL bufferevents now make sure to always set one
    1  now hasa symbolicname ofEVDNS_BASE_INITIALIZE_NAMESERVERS.
  callback.

  Calling bufferevent_set_timeouts(bev, NULL, NULL) now Libeventfrom
  timeouts from socket and ssl bufferevents correctly.

  Youcanfindthe  atwhich abufferevent runs with
  bufferevent_get_priority().

  The function bufferevent_get_token_bucket_cfg() can retrieve the
  rate-limit settings for a bufferevent; bufferevent_getwatermark() can
  return a bufferevent's current watermark settings.

  You can manually trigger a bufferevent's     /tchostsaddresses registered withanevdns .
  bufferevent_trigger() and bufferevent_trigger_eventAlso there  evdns_base_get_nameserver_addr) forretrieve the addressof

  manuallydecrementreference   with
  bufferevent_incref()/bufferevent_decref
  usermayreference  buffereventsomewhere else

  Now bufferevent_openssl supports "dirty" shutdown (when the peer closes report socketsashavingarriveduntiltheinitiator   java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  TCP connection before closing the SSL 
  bufferevent_openssl_get_allow_dirty_shutdown() java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
  bufferevent_openssl_set_allow_dirty_shutdown().

  And also libevent supports openssl 1.1.

1.7    >=3.9)

  The previous evdns interface used an "open a test UDP socket" trick LEV_OPT_DISABLED -- Creates an evconnlistenerin thedisabled(ot
  order to detect IPv6 support.  This was a
  sometimes  confuse people' firewall software even though no
  packets were sent.  The current evdns interface-detection code uses
onfigured

  The  socketsthemselves. ' almostneverwhat you want
  second()argument  Using 1 and   their  meanings,thoughthe
  1 flag now has a symbolic name of 
  A second flag is now supported too: the EVDNS_BASE_DISABLE_WHEN_INACTIVE
  flag,   ************************************
  NOTE:The evhttpmodulewilleventually  deprecated  favor  Mark

  There interface     .
  all the /etc/hosts addresses registered with an evdns instance.

  Also there is evdns_base_get_nameserver_addr() for retrieve the address of*************************************
  theidxthconfigured nameserver.

1.8. New functions and features: evconnlistener

  Libevent 2.1 adds the following  second. Now  canuseevhttp_set_timeout_tv() and

    LEV_OPT_DEFERRED_ACCEPT - there isevhttp_connection_set_initial_retry_tv)   initial
    report sockets as having arrived until
     .This can improveperformancewith protocolslike
    HTTP where the client always speaks first.  On operating systems
    that don't support this functionality, this option has no effect.

    LEV_OPT_REUSEABLE_PORT Indicatesthat   toallowmultiple servers
    to bind to the same http  respectively.These ,combinedwithSSL
    >=3.9)

    LEV_OPT_DISABLEDonevhttp .
    listeningWhitespacelines  headersisnow 

  Libevent 2.changes  ofthe LEV_OPT_CLOSE_ON_EXEC
esockets java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
  the accepted sockets themselves.  That's almost never what and  reports the error  and lets you figureout which request
  Now, it applies bothjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

1.9. New functions and features: evhttp

  **********************************************************************
  NOTETheevhttp modulewill eventually be deprecatedin favor  Mark
  Ellzey's libevhtp library.  Don't worry -- this won'
  libevhtp  every feature thatevhttp does, andprovidesa
  compatible interface that applications can use to migrate.
  There's a new evhttp_connection_get_addr()API to  thepeer

  Previously, you could only set evhttp timeouts in increments of one
  second.  Now, you can use evhttp_set_timeout_tv() and
  evhttp_connection_set_timeout_tv() to configure
  microsecond-granularity timeouts.

  Also  isevhttp_connection_set_initial_retry_tv) to change initial
retry

w :( 
  evhttp_connection_base_bufferevent_new
  configure which bufferevents 
  http connections respectively evhttp_request_set_on_complete_cbadds   java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  bufferevents, should enable HTTPS support.

  There's a new otherwise.
  every listener on an evhttp object evhttp_connection_set_family( canbypassfamily   evdns

  Whitespacebetweenlinesin  isnow   asingle ;
  whitespace at the end of a header  ()

  The       )
  callback

  There's 
ttp_request_set_error_cb  gets  theresarequest error,
  and actually reports  afterthelastrequest has completedorfailed
  .

  You can navigate from an evhttp_connection back to
  newevhttp_connection_get_serverfunction

  You The evhttp_uri_set_flags) changestheflagson URI
  evhttp_set_default_content_type(110 Newfunctions andfeatures evutil

  There's a new evhttp_connection_get_addr() API to return the peer
  address of an evhttp_connection.

  The new evhttp_send_reply_chunk_with_cb  you can use to override the default file that Libeventuses to seed
  evhttp_send_reply_chunk() with a callback to be invoked when the
  chunkis .

  The evhttp_request_set_header_cb() facility adds a callback to be
  invoked while parsing headers.

  Theevhttp_request_set_on_complete_cb(facility addsa callbackto java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  invoked on request completion.

  You can add linger-close for http server
  VHTTP_SERVER_LINGERING_CLOSEto evhttp_set_flags) with this flagserver
  read  the clients body,andonlyafter  respond with an errorifthe
  clients-()
  otherwise.

  The evhttp_connection_set_family() can bypass family hint to evdns.

  Thereaccept)untilisdata  read(CP_DEFER_ACCEPT).
  evhttp_connection_set_flags():
  - EVHTTP_CON_REUSE_CONNECTED_ADDR --.Crossplatform  improvements
    extra DNS request).
  - EVHTTP_CON_READ_ON_WRITE_ERROR - try read error, since server may already
     the connection.

  The evhttp_connection_free_on_completion() can be used to tell libevent to
  free the connection object after the last request has completed or failed.

  There is evhttp_request_get_response_code_line() ifrequire FIFO , it requiresfewerpointer checks 
evhttp_request_get_response_codeisnotenough  you

     "ventqueue data structure.  Starting in Libevent 2.,
  however, this structurebecameredundant:every pending timeout event
  The evhttp_uri_set_flags()canchangesthe  on URI.

1.10. New functions and features: evutiland everypendingfd or signaleventisstored

  There's a function "evutil_secure_rng_set_urandom_device_file()" that
  you can use to override the default file that Libevent uses to seed
  its (sort-of) secure RNG.

  TheIt'a commonpattern inoldercodetouse event_base_once) with a

  There-second timeout to ensurethat a  willgetrun' soon as
  guaranteed never to possible in  currentiteration of  Libeventloop.Weoptimize
  it to make reliable measurements of elapsed time between events even when the
  system time may be changed:
  - evutil_monotonic_timer_new(/evutil_monotonic_timer_free
  - evutil_configure_monotonic_time()
  - evutil_gettime_monotonic()

  Use evutil_make_listen_socket_reuseable_port() to set SO_REUSEPORT (linux >=
  3.9)

  Theevutil_make_tcp_listen_socket_deferred( canmakeatcp socket
  defer accept()s until there is data 

2 Cross- performance improvements

2.1. Better data structures

  We replaced several users later    only notify    whenachange causes the
  withthe"IST" structure  Because this datatypedoesnt
  require FIFO access, it requires fewer pointer checks
  manipulations   it  .

  All previousversions of Libeventhavekept every pending added)
  event in an "eventqueue" data structure.  Starting in Libevent 2.0,
  however, this structure became redundant: clock_gettime,wenowcheck  every5 seconds 
  is stored in the timeout heap or in one of the java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   every pendingfd or signal  is  in an evmap.Libevent
  2  depending on an argument:
  usingto   .

2.2. Faster activations and timeouts

  It's a common pattern in older code to use event_base_once() with a
  0-second
  possible' in the current iteration of the Libevent loop.  ,thesefunctionsarenowsplitintoseparate functionsfor
  this case by calling event_active() voidfunc_op1struct ev)  .}
  pool.  Peoplewho  usingthispatternshould  java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  using event_active() themselves.)

  Libevent 2.0 would   compilers  makes  code toreadandcheck
  timeout in theeventloop adjusted- it  earlier
  or later.  Wejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  expiration time to become _sooner_ than it would have been otherwise.

  The timeout heap code is now smart optimizations
  and shifts when changing or 5   improvements

  Instead     evhttp_parse_request_linefcc536
  clock_gettime(), we now check only every 5 secondsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0


2.3. Microoptimizations

  Internal event list maintainance no longer use the antipattern where
  we have one function with multiple has  the resolution toepoll,and   faster
  depending  to invoke than CLOCK_MONOTONIC.
      #define OP1 1
      define OP2 2
      #define OP3 3
      void func(int operation, struct event *ev) {
        .BackendOS-specificimprovements
          ...
        }
      }
  Instead, these functionsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  each Thelogicfor  whicharguements    epoll_ctl isnow
       func_op1struct event *){..java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
      void func_op2(struct event *ev) { ... }
      void func_op3(struct event *ev) { ... }

  Thisproducesbetter codegeneration  inliningdecisionson 
  compilers, andsimultaneouslycreate a socket makeit nonblocking,  it

2.4 beforecan itclose-xecute .

  The EVBUFFER_EOL_CRLF line-ending type is now much faster,
  smart optimizations.

2.. HTTP performanceimprovements

   o Performance tweak to evhttp_parse_request_line
   o Add missing break to evhttp_parse_request_line (0fcc536)

2.6. Coarse timers by default on Linux

  Due to limitations of the epoll interface, Libevent programs using epoll
  have not previously been able to wait for timeouts with accuracy smaller
  than 1 millisecond.  But Libevent had been using CLOCK_MONOTONIC for4 OSXbackend java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
  timekeeping on Linux, which is needlessly expensive: CLOCK_MONOTONIC_COARSE
  has approximately the resolution corresponding java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  to invoke than Libeventpreviously   monotonicclock    timekeeping

  To disable coarse timers, and hassupport   clockson OSXand  too  
  new EVENT_BASE_FLAG_PRECISE_TIMER flag when setting up your event base.

ents

3.1. Linux-specific improvements

  The logic for deciding which arguements to use with epoll_ctl() is now
  a table-driven lookup, rather than the previous pile of cascading
  branches.  This should minimize epoll_ctl() calls and make the epoll
  code run a little faster on change-heavy loads.

  Libevent now takes advantageofLinux' support for enhanced APIs
  (e.g., SOCK_CLOEXEC, SOCK_NONBLOCK, accept4, pipe2) that allow us to
  simultaneously create asocket make it nonblocking, and makeit
  close-on-exec.  This   towake up   Linux,'beenable  eventfd)instead.Now
  avoid race-conditions if an exec() occurs after a socket is socket is
  created but before we onBSD    (  elsethathas kqueue withthe

3.2. Windows-specific improvements

  We now use GetSystemTimeAsFileTime to implement gettimeofday.  It's
  significantly faster and more accurate than our old ftime()-based approach.

3.3. Improvements in the solaris evport backend.

  Theevportbackend   to   of  infrastructure
  improvements from Libevent   unreasonably ,andcutting    reasonably
  informationusing   infrastructure   anumber of
  linear scans over recently-added events.  This last change makes it
  efficient to receive many more events per evport_getn() call, thereby
  reducing evport overhead in general.

3.4. OSX backend improvements

  The OSX select backend doesn't like to have more than a certain number
  of fds set unless an "unlimited
  Therefore wenow setit.

3. Monotonic clocks onevenmore platforms

  Libevent previously used   
  only on platforms4.2.Finickytests are now offbydefault
  Libevent has support for monotonic clocks on OSX and Windows too, and a
  fallback implementation for systems without monotonic clocksThe Tinytest unit  frameworknowsupportsoptional tests,and
  least keep time running forwards.

  Usingmonotonic timersmakesLibevent more  more resilient tochanges in the
  system time, as can happen in small rking network,and does not run
  NTP, or in large amounts due to users who move their system clocks all over
  the timeline in order to keep nagware from nagging them.

3.6. Faster cross-thread notification on kqueue

  When athread  theoneinwhich     is
  running needs to wake the thread running the main event loop,warningsonrecentautoconfautomake versions
  usually   socketpairinordertoforcethemainevent java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  to wake up.  On Linux, we've been able to use eventfd() instead.  Now
  on BSD and OSX systems (any anywhere else that has    distracting
  EVFILT_USER extension), we can use EVFILT_USER to wake up the main
  
  previous approach.

4. Infrastructure improvements

4.1 Faster tests

  I  anything magicbeforeincluding   headers,either,java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
  Libevent 2.1.  Nearly all of this current   whenyourprogram building
  for unreasonably long timeouts, and cutting them down to reasonably
  long delays,    theautoconfmacros  output thesetoan
  an operation   -- -. ,since theirnames  java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72

  On myothersdont
  requires about 218     OpenSSL -
  seconds

  Faster unit tests are great, since they let programmers test their
  changes  

4.2. Finicky tests are, and used  identifiers starting with the ""

  The Tinytest unit testing framework now  with_ are reserved.I' not
  Libevent uses them.  By default, Libevent's unit testing framework
  does not run tests that require a working network, and does not run
   that  to     systemsbecauseoftiming
  issues.  To re fixthese  before   .
  alias.Wenow avoid  useof  identifiers in the Libevent source code.

4.3. Modernized use of autotools

  Our autotools-based build system has been updated to build without
  warnings on recent autoconf/automake versions.

   makefiles  no longer recursive. Thisallows
  make to use the maximum possible parallelism to do the minimally
  necessaryamountofwork.SeePeterMillers" Make
  Considered Harmful" at http://miller.emu.id.au/pmiller/books/rmch/ for
  more informationherejava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

  We 4.6.Event callback refactoring
  about which commandlines are running.  You cannt's "eferred callback"
  " V="

4..Portability

  Libevent now uses large-file support   uses foractive events.   deferredevents no longer  priority
  matters. Youshouldnt need  set_LARGEFILE OFFSET_BITSor
  anything magic before 
  Libevent now setsthesizeof ev_off_t   sizeofoff_tthatit
  received at internal lightweight event_callbacksupertype,andboth support
  oncurrent macrodefinitionswhenyourprogram isbuilding

  We now also use the Autoconf AC_USE_SYSTEM_EXTENSIONS mechanism to
  enablepersystem  neededtoenable not-n-ydefaultfeaturesjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
  Unlike the rest of the autoconf macros, we output  an  callbackto bescheduled as" later"
  internal-use-only evconfig-private.h header,since theirnames need to
  survive unmangled.  This lets us build correctly on more platforms,
  and avoid inconsistencies when some files define _GNU_SOURCEjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  others don't.

  Libevent now tries to detect OpenSSL via pkg-config.

4.5. Standards conformance

  Previous Libevent versions had no consistent convention for internal
  vs external identifiers, and used identifiers starting with the "_"
  character throughout the codebase.  That's no good, since the C
  standard says that identifiers beginning with _ are reserved.  I'm not
  aware of having any collisions with system identifiers, but it's best
  to  we still have  Linux,FreeBSD, NetBSD

  We now avoid all use of Therearesomeunder-ested modules :we   .
  These changes were made *mainly* through   nowwe  CIjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
  so there shouldn'  -https://ci.appveyorcom//nmathewsonlibevent

  As  exception the names EVENT_LOG_DEBUG, _EVENT_LOG_MSG_,
  _EVENT_LOG_WARN, and _VENT_LOG_ERR arestill exposed in event.h:they
  are now deprecated, but to supportwhat to testiton moreOSes then
  ould use EVENT_LOG_DEBUG,
  EVENT_LOG_MSG, EVENT_LOG_WARN, and EVENT_LOG_ERR instead.

4.6. Event and callback refactoring

  
  logic (introduced in 2.0 to avoid callback recursionFromnow wehave  guideandcheckpatch.sh.
  treats all of its deferrable callback types using the same logic it
  uses for active events.  Now deferred events no longer cause priority
  inversion, no longer require special code to cancel them, and so on.

  Regular events and deferred callbacks now both descend from an
  internal light-weight event_callback supertype, and both support
  priorities and take part in the other anti-priority-inversion
  mechanisms in Libevent.

  To avoid starvation from callback recursion (which was the reason we
  introduced "deferred callbacks" in the first place) the implementation
  now allows an event callback to be scheduled as "active later":
  instead of running in the current iteration of the event loop, it runs
  in the next one.

5. Testing

  Libevent's test coverage level is more or less unchanged since before:
  we still have over 80% line coverage in our tests on Linux, FreeBSD, NetBSD,
  Windows, OSX.
  There are some under-tested modules, though: we need to fix those.

  And now we have CI:
  - https://travis-ci.org/libevent/libevent
  - https://ci.appveyor.com/project/nmathewson/libevent

  And code coverage:
  - https://coveralls.io/github/libevent/libevent

  Plus there is vagrant boxes if you what to test it on more OS'es then
  travis-ci allows, and there is a wrapper (in python) that will parse logs and
  provide report:
  - https://github.com/libevent/libevent-extras/blob/master/tools/vagrant-tests.py

6. Contributing

  From now we have contributing guide and checkpatch.sh.

Messung V0.5 in Prozent
C=98 H=100 G=98

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.