On Sat, Dec 3, 2016 at 7:13 PM, Vincent Torri <vincent.to...@gmail.com> wrote:
> On Sat, Dec 3, 2016 at 7:44 PM, Gustavo Sverzut Barbieri
> <barbi...@gmail.com> wrote:
>> On Sat, Dec 3, 2016 at 1:57 PM, Vincent Torri <vincent.to...@gmail.com> 
>> wrote:
>>> Hello
>>>
>>> I'm rewriting my multi-document viewer. I'm using EFL git,  and i have
>>> that Eo error message :
>>>
>>> ERR<59568>:eo[T:3] lib/eo/eo.c:1663 efl_isa() Object 40007f56 is not a
>>> valid object in this context: object domain: 0, current domain: 2,
>>> local domain: 2, available domains: [  1 2  ]
>>>
>>> does someone have an idea of the problem ?
>>
>> the new efl in git provides more context to that message since
>> yesterday, particularly if you use EO_LIFECYCLE_DEBUG=1 (envvar),
>> since I was so pissed with such nebulous messages :-D
>
> all the debug stuff does not work on Windows (it needs libunwind, or
> at least DWARF parsing to get the debug symbols), but i will test on
> Linux when I have time.
>
> i've also seen some preload stuff you mentioned, which does not work
> on Windows (it's a different method to do similar stuff)
>
>> usually the object is already dead or was never created... If you're
>> using threads (seems so due "[T:3]"), be aware that objects are bound
>> to the thread they were created and you need to "import"  to use,
>> Raster sent some email to the list and I recall som tests in the
>> tree....
>
> I indeed use an ecore_thread

yes, reading the message again, not just the T:3 for the thread, but
also the "object domain: 0" (main thread) while "current domain: 2"
(secondary thread) would lead to a failure since raster added the
protection.

If you want to use auto-locks, then get the shared domain with:

efl_domain_current_push(EFL_ID_DOMAIN_SHARED);
my_obj = efl_add(...);
efl_domain_current_pop();

check eo_test_general.c and Eo.h, they can give you an idea of what
can you do... basically all objects are bound to one thread (domain),
main thread or shared. Their parent must be in the same domain. This
allows TLS of eoid stuff, avoiding locks and possibly avoiding
concurrency bugs. Just the shared domains have locks as it used to be
in the whole eo.




-- 
Gustavo Sverzut Barbieri
--------------------------------------
Mobile: +55 (16) 99354-9890

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to