Changeset 33856

Show
Ignore:
Timestamp:
06/09/09 11:16:27 (4 years ago)
Author:
saturday06
Message:

jioafdjasd

Location:
lang/objective-cplusplus/i3/trunk
Files:
11 modified

Legend:

Unmodified
Added
Removed
  • lang/objective-cplusplus/i3/trunk/am/mil_test.am

    r33828 r33856  
    99src/mil/src/Test2.cpp \ 
    1010src/mil/src/Test3.cpp \ 
     11src/mil/src/Test4.cpp \ 
    1112src/mil/src/BoostTestMain.cpp \ 
    1213src/mil/src/BoostTestDummyLib.cpp 
     14 
    1315 
    1416mil_test_CXXFLAGS = ${i3_CXXFLAGS} \ 
  • lang/objective-cplusplus/i3/trunk/configure.ac

    r33828 r33856  
    188188AM_GNU_GETTEXT_VERSION([0.17]) 
    189189#AM_GNU_GETTEXT_VERSION([0.16.1]) 
     190#AM_GNU_GETTEXT_VERSION([0.14.5]) 
    190191AM_GNU_GETTEXT 
    191192AC_LANG_POP 
     
    241242                [AC_MSG_FAILURE([__sync_bool_compare_and_swap not found])])]) 
    242243 
     244CXXFLAGS_NO_LANG=`echo $CXXFLAGS | sed "s/-x objective-c++//" -` 
     245AC_SUBST(CXXFLAGS_NO_LANG) 
     246 
    243247# 
    244248# autotest 
     
    248252AC_CONFIG_FILES([tests/Makefile tests/atlocal]) 
    249253 
    250 CXXFLAGS_NO_LANG=`echo $CXXFLAGS | sed "s/-x objective-c++//" -` 
    251 AC_SUBST(CXXFLAGS_NO_LANG) 
    252  
    253254# --------------------------------------- 
    254255AC_CONFIG_FILES([Makefile intl/Makefile po/Makefile.in]) 
  • lang/objective-cplusplus/i3/trunk/src/Test1.cpp

    r33771 r33856  
    8787//    BOOST_CHECK(strcpy_s(foo, bar) == ERANGE); 
    8888    free(bar); 
    89  
     89     
    9090} 
    9191 
  • lang/objective-cplusplus/i3/trunk/src/mil/include/mil/Module.h

    r33784 r33856  
    109109            return; 
    110110        } 
    111         void* mem = NULL; 
    112         pool::MemoryList* m = NULL; 
    113         boost::tie(mem, m) = target.tls.consumer.work(&event); 
     111 
     112        pool::MemoryList* m = target.tls.consumer.pop(event.owner_id); 
    114113        if (!m) { 
    115             return; 
    116         } 
     114            target.tls.consumer.store(&event); 
     115            return; 
     116        } 
     117         
    117118        pool::ReturnMemoryEvent<pool::Blocks<Event<Data> >::value> e; 
    118119        e.memory = m; 
     
    121122            return; 
    122123        } 
    123         (reinterpret_cast<Sender*>(t))->post(e, target, mem, event.owner_id); 
     124        (reinterpret_cast<Sender*>(t))->post(e, target, (void*)&event, event.owner_id); 
    124125    } 
    125126public: 
  • lang/objective-cplusplus/i3/trunk/src/mil/include/mil/Thread.h

    r33844 r33856  
    180180    } 
    181181 
     182    MemoryList* pop(int owner_id) { 
     183        if (sizes[owner_id] > 20) { 
     184            return NULL; 
     185        } 
     186        MemoryList* result = heads[owner_id]; 
     187        heads[owner_id] = 0; 
     188        sizes[owner_id] = 0; 
     189        return result; 
     190    } 
     191 
     192    template <class T> 
     193    void store(T* mem) { 
     194        int owner_id = mem->owner_id; 
     195        MemoryList* l = (MemoryList*)mem; 
     196        int blocks = ((sizeof(T) - 1) / BLOCK_SIZE) + 1; 
     197        l->blocks = blocks; 
     198 
     199        if (blocks > MALLOC_BLOCKS_THESHOLD) { 
     200            free(mem); 
     201            return; 
     202        } 
     203 
     204        l->next = heads[owner_id]; 
     205        heads[owner_id] = l; 
     206        sizes[owner_id]++; 
     207    } 
     208 
     209/*     
    182210    template <class T> 
    183211    boost::tuple<void*, MemoryList*> work(T* mem) { 
     212        using namespace boost; 
    184213        int owner_id = mem->owner_id; 
    185214 
     
    188217            heads[owner_id] = 0; 
    189218            sizes[owner_id] = 0; 
    190             return boost::tuple<void*, MemoryList*>((void*)mem, result); 
     219            return tuple<void*, MemoryList*>((void*)mem, result); 
    191220        } 
    192221 
     
    196225        if (blocks > MALLOC_BLOCKS_THESHOLD) { 
    197226            free(mem); 
    198             return boost::tuple<void*, MemoryList*>(NULL, NULL); 
     227            return tuple<void*, MemoryList*>(NULL, NULL); 
    199228        } 
    200229 
     
    202231        heads[owner_id] = l; 
    203232        sizes[owner_id]++; 
    204         return boost::tuple<void*, MemoryList*>(NULL, NULL); 
    205     } 
     233        return tuple<void*, MemoryList*>(NULL, NULL); 
     234    } 
     235}; 
     236*/ 
    206237}; 
    207238} 
  • lang/objective-cplusplus/i3/trunk/src/mil/include/mil/gui-cocoa/GuiModule.h

    r33764 r33856  
    110110            return; 
    111111        } 
    112         void* mem = NULL; 
    113         pool::MemoryList* m = NULL; 
    114         boost::tie(mem, m) = target.tls.consumer.work(&event); 
     112 
     113        pool::MemoryList* m = target.tls.consumer.pop(event.owner_id); 
    115114        if (!m) { 
     115            target.tls.consumer.store(&event); 
    116116            return; 
    117117        } 
     118         
    118119        pool::ReturnMemoryEvent<pool::Blocks<Event<Data> >::value> e; 
    119120        e.memory = m; 
     
    122123            return; 
    123124        } 
    124         (reinterpret_cast<Sender*>(t))->post(e, target, mem, event.owner_id); 
     125        (reinterpret_cast<Sender*>(t))->post(e, target, (void*)&event, event.owner_id); 
    125126    } 
    126127public: 
  • lang/objective-cplusplus/i3/trunk/src/mil/include/mil/gui-windows/GuiModule.h

    r33844 r33856  
    119119        } 
    120120 
    121         void* mem = NULL; 
    122         pool::MemoryList* m = NULL; 
    123         boost::tie(mem, m) = target.tls.consumer.work(&event); 
     121 
     122 
     123        pool::MemoryList* m = target.tls.consumer.pop(event.owner_id); 
    124124        if (!m) { 
    125             return; 
    126         } 
     125            target.tls.consumer.store(&event); 
     126            return; 
     127        } 
     128         
    127129        pool::ReturnMemoryEvent<pool::Blocks<Event<Data> >::value> e; 
    128130        e.memory = m; 
    129         void* t =  threads[event.owner_id].load(); 
     131        void* t = threads[event.owner_id].load(); 
    130132        if (!t) { 
    131             // error 
    132             return; 
    133         } 
    134         (reinterpret_cast<Sender*>(t))->post(e, target, mem, event.owner_id); 
     133            return; 
     134        } 
     135        (reinterpret_cast<Sender*>(t))->post(e, target, (void*)&event, event.owner_id); 
    135136    } 
    136137 
  • lang/objective-cplusplus/i3/trunk/src/mil/include/mil/os-unix/Thread.h

    r33828 r33856  
    11#pragma once 
     2#include "../Atomic.h" 
    23#include "../Mil.h" 
    3 #include "../Atomic.h" 
    44#include <pthread.h> 
    55#include <unistd.h> 
     
    4646class Thread : public boost::noncopyable 
    4747{ 
    48     mil::atomic<bool> isExited; 
     48    atomic<bool> isExited; 
    4949    pthread_t t; 
    5050    pthread_attr_t a; 
     
    109109    void join() 
    110110    { 
     111        threads[thread_id].store(NULL); 
    111112        for (int retry = 50; !isExited.load(); retry--) 
    112113        { 
     
    118119        } 
    119120    } 
     121 
    120122    Thread() : isExited(true), thread_id(0) 
    121123    { 
  • lang/objective-cplusplus/i3/trunk/src/mil/include/mil/os-windows/Thread.h

    r33844 r33856  
    9898        } 
    9999 
     100        threads[thread_id].store(NULL); 
     101 
    100102        for (int retry = 50; !InterlockedExchangePointer(&isExited, 0); retry--) 
    101103        { 
  • lang/objective-cplusplus/i3/trunk/src/mil/src/BoostTestDummyLib.cpp

    r33828 r33856  
    1 #include <string.h> 
     1// #include <string.h> 
    22 
    3 #ifdef __MINGW32_VERSION 
    4 namespace std 
    5 { 
    6 void *memset(void *s, int c, size_t n) 
    7 { 
    8     return ::memset(s, c, n); 
    9 } 
    10 } 
    11 #include <mil/os-windows/PrecompiledHeaders.h> 
    12 #endif 
     3// #ifdef __MINGW32_VERSION 
     4// namespace std 
     5// { 
     6// void *memset(void *s, int c, size_t n) 
     7// { 
     8//     return ::memset(s, c, n); 
     9// } 
     10// } 
     11// #include <mil/os-windows/PrecompiledHeaders.h> 
     12// #endif 
    1313 
    14 #undef vsnprintf 
    15 #undef libintl_vsnprintf 
     14// #undef vsnprintf 
     15// #undef libintl_vsnprintf 
    1616 
    1717#define id MIL_NO_OBJC_ID 
    1818#include <boost/test/included/unit_test.hpp> 
    19 #undef MIL_NO_OBJC_ID 
     19#undef id 
    2020 
    2121 
     22 
  • lang/objective-cplusplus/i3/trunk/src/mil/src/BoostTestMain.cpp

    r32108 r33856  
    1 #include <mil/PrecompiledHeaders.h> 
     1//#include <mil/PrecompiledHeaders.h> 
    22#define BOOST_TEST_MAIN 
     3#define id MIL_NO_OBJC_ID 
     4#undef id 
     5 
    36#include <boost/test/unit_test.hpp> 
    47 
     8BOOST_AUTO_TEST_CASE(asdfuisdhfiuah) 
     9{ 
     10    BOOST_CHECK(true); 
     11} 
     12 
     13