Changeset 1395 in svn for branches/3.0


Ignore:
Timestamp:
2013-09-25T04:58:06+02:00 (22 months ago)
Author:
Xuefer
Message:

merge r1381,r1388,r1394 from trunk: fixed #324: xcache.readonly_protection = Off cause SEGV under mass concurrent

Location:
branches/3.0
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/3.0

  • branches/3.0/ChangeLog

    r1369 r1395  
    33========
    44 * cacher
     5   * fixed #324: xcache.readonly_protection = Off cause SEGV under mass concurrent
    56   * fixed #323: refix locking impl for threaded env
    67
  • branches/3.0/NEWS

    r1369 r1395  
    113.0.4 2013-09-??
    22========
     3 * improve stability under massive concurrent
    34 * refix locking impl for threaded env
    45
  • branches/3.0/processor/processor.m4

    r1357 r1395  
    722722        /* really fast shallow copy */
    723723        memcpy(dst, src, sizeof(src[0]));
    724         dst->refcount[0] = 1000;
     724        DST(`refcount') = &XG(op_array_dummy_refcount_holder);
     725        XG(op_array_dummy_refcount_holder) = ((zend_uint) -1) / 2;
    725726#ifdef ZEND_ACC_ALIAS
    726727        if ((processor->active_class_entry_src && (processor->active_class_entry_src->ce_flags & ZEND_ACC_TRAIT))) {
     
    862863
    863864    STRUCT_P(zend_uint, refcount)
    864     UNFIXPOINTER(zend_uint, refcount)
    865     IFSTORE(`dst->refcount[0] = 1;')
     865    IFSTORE(`
     866        UNFIXPOINTER(zend_uint, refcount)
     867        DST(`refcount[0]') = 1;
     868        FIXPOINTER(zend_uint, refcount)
     869    ')
    866870
    867871#ifdef ZEND_ENGINE_2_4
  • branches/3.0/xcache_globals.h

    r1196 r1395  
    4141
    4242    void *sandbox;
     43    zend_uint op_array_dummy_refcount_holder;
    4344ZEND_END_MODULE_GLOBALS(xcache)
    4445
Note: See TracChangeset for help on using the changeset viewer.