this basically breaks all thread usage if it happens, so ensure that the
threads infrastructure stays active for as long as eina is active
@fix
Differential Revision: https://phab.enlightenment.org/D6303
eina is guaranteed to crash in any process without this call now that
eina_debug exists and requires threads
@fix
Differential Revision: https://phab.enlightenment.org/D6302
this should be done in a single location to avoid dependency conflicts
and make the code easier to read
Differential Revision: https://phab.enlightenment.org/D6301
Summary:
Turns out these can fail with EINTR or EAGAIN, and we're supposed
to try again.
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6250
Summary:
calling the constructor and deconstructor from different threads
causes issues with mempool deallocation, so ensure that the class is
always initialized in the main thread for safety, e.g., call the
SOME_NAMED_CLASS macro during init to instantiate the class
fix T7003
Reviewers: bu5hm4n, devilhorns
Reviewed By: bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7003
Differential Revision: https://phab.enlightenment.org/D6332
Summary:
this is both invalid and useless, so return immediately before spending cpu
time and generating error messages
fix T7035
Depends on D6324
Reviewers: bu5hm4n, Hermet, woohyun, devilhorns
Reviewed By: bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7035
Differential Revision: https://phab.enlightenment.org/D6325
Summary:
a number of calls during construction resulted in null object errors here
fix T7036
Depends on D6323
Reviewers: bu5hm4n, Hermet, woohyun, devilhorns
Reviewed By: bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7036
Differential Revision: https://phab.enlightenment.org/D6324
Summary:
this check already existed in the function but was not applied to the
entire function
ref T7030
Depends on D6322
Reviewers: bu5hm4n, Hermet, woohyun, devilhorns
Reviewed By: bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6323
Summary:
this requires the parent of the deleted object to be reachable, so use the
invalidate callback as this is the last point during which it's possible to
retrieve a parent object
ref T7030
Depends on D6320
Reviewers: bu5hm4n, Hermet, woohyun, devilhorns
Reviewed By: bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6321
Summary:
build with this disabled is just not working as the thread model of eo
falls apart. The threadmodel is required to have eo_id, as it decoded
the thread information in the eo_id, which is not working without eo_id.
This also fixes the testcases that have never been executed due to the
fact of the missing HAVE_EO_ID
fix T6610
Depends on D6327
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T6610
Differential Revision: https://phab.enlightenment.org/D6328
Summary:
this is no functinal change, we safe the calling to efl_parent_set.
Nothing else, the base implementation is initializated with NULL as
parent, and efl_parent_set with NULL would have returned in the first
few lines.
fix T7032
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7032
Differential Revision: https://phab.enlightenment.org/D6327
Summary:
cpu usage is not an issue during test runs, we want the tests to finish
as fast as possible in all cases regardless of the cost. this resolves
the last remaining issue with eio tests where sometimes the fallback
monitor would trigger and the test suite would hang for 60+ seconds
fix T6915
Depends on D6248
Reviewers: stefan_schmidt, bu5hm4n, ManMower, devilhorns
Reviewed By: bu5hm4n, ManMower
Subscribers: bu5hm4n, cedric, #committers
Tags: #efl
Maniphest Tasks: T6915
Differential Revision: https://phab.enlightenment.org/D6249
Summary:
remove a lot of duplicated code and make this test suite read more like
all the other suites
fix T6813
Depends on D6247
Reviewers: stefan_schmidt, bu5hm4n, ManMower, devilhorns
Reviewed By: bu5hm4n, ManMower
Subscribers: Hermet, bu5hm4n, cedric, #committers
Tags: #efl
Maniphest Tasks: T6813
Differential Revision: https://phab.enlightenment.org/D6248
Summary:
the default value for the fallback poll monitor timer interval is 60.0 seconds,
which is not useful for all cases, such as CI, where we don't care about cpu
usage and just want things to process as fast as possible at all times
this enables setting the interval to any value, ensuring that any existing
timers are modified to use that value immediately
@feature
Reviewers: stefan_schmidt, bu5hm4n, raster, devilhorns, ManMower
Reviewed By: bu5hm4n, ManMower
Subscribers: ManMower, raster, bu5hm4n, cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6247
Summary:
the 'first' member of this struct is used simultaneously across
threads and can have conflicting read/write operations occurring at this
time
as int operations are not guaranteed to be atomic, ensure that we are
using atomic operations or locking as necessary
@fix
Depends on D6299
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6300
Summary:
this moves lock calls outside #ifdef blocks to make the code more
readable
no functional changes
Depends on D6298
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6299
Summary:
this would deadlock in some cases
@fix
Depends on D6297
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6298
Summary:
memset overwrites the thread value, triggering errors when running tools like
helgrind
attempting an operation on an invalid thread will cause errors naturally,
so zeroing the rest of the struct and ignoring the thread member is fine
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6297
Summary:
this case would guarantee a crash if the module was ever unloaded
and the event handlers were called, and it leaks otherwise
@fix
Reviewers: ManMower, devilhorns, bu5hm4n
Reviewed By: ManMower, bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6296
Summary:
API parts require namespacing, these parts have been namespaced with
compatibility code added to handle legacy naming
Depends on D6210
Reviewers: cedric
Reviewed By: cedric
Subscribers: #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6211
Summary:
this was released with improperly namespaced parts which must be maintained
for future releases, but the namespacing can be corrected for future
releases while adding aliasing to preserve compatibility
Depends on D6208
Reviewers: cedric
Reviewed By: cedric
Subscribers: #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6210
Summary:
this appears to be a remnant of the time before edje had spacer parts
and other part types were randomly used instead
there is no library reference to this part and it is not namespaced so
there is no reason to leave it as a (confusing) swallow
Depends on D6040
Reviewers: cedric, Hermet
Reviewed By: Hermet
Subscribers: Hermet, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6208
Summary: non-api parts should avoid using '.' in the name to avoid confusion
Reviewers: cedric
Reviewed By: cedric
Subscribers: #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6037
sorry for the late fixup, the Ecore_Audio_Object is documented as "the
audio object" however, it is not, internally it is used as struct, thus
gdb gets confused.
This reverts commit 1b245787fe.
This is a workaround patch, even occurs a regression bug that
breaks widget signal emission logic. (Happened in Enventor toolbar)
I reviewed this code seriously and found out
ui_layout sub object unset logic has been changed.
Obviously that breaks the elm compatibility.
When sub-object of layout is removed, it tries to remove sub-object from
the layout internal list. Problem is, some widgets sends internal signals
when sub-object is removed(i.e "icon,hidden") , but layout returns the
valid object even though sub-object unset is called prior to signal,
means, "icon,visible" not "icon,hidden" emitted.
This logic obvisouly changed from the previous efl version.
And we need to fix that logic first.
See _efl_ui_button_legacy_efl_ui_widget_widget_sub_object_del()
to check this issue.
1. button: sub_object_del()
2. layout: sub_object_del() => sub object must be removed.
3. button: signal emit() => for updating states
4. layout: content_get() => returns valid object?????! (Issue)
Since usage has been changed under the beta version,
Some users may keep the old-usage that breaks the vg behavior now.
For their information, vg prints messages in case of breaks.
Summary:
To determine if a system supports SIMD instructions, the cpuid facility
should be used. However, for 15+ years EFL has been trapping SIGILL,
then attempting to execute these intstructions.
Continuing after SIGILL is explicitly undefined behaviour and can never
safely be relied upon - it is possible the CPU will respond to the
unknown instruction in an upredictable way and the program will not
continue correctly. Even if it hasn't caused problems before, there's
no reason to believe a processor released in the future won't behave
differently.
Lately we've had a couple of bug tickets where SIGILL appears to cause
problems at a system level as well, but there seems little point in
chasing those problems down as we shouldn't even be doing this in the
first place.
ref T6711
ref T6989
We still rely on SIGILL in a few configurations where eina_cpu doesn't
know how to query features properly (powerpc, sparc, and non linux
ARM configurations). Hopefully someone with expertise on those
platforms can follow up and we can remove this entirely.
Note: MMX2 appears to not really be a thing, and is instead provided by
both 3DNow! and SSE. We already conflate it with SSE in other parts of
evas, so I've just used SSE here to test for its presence.
Depends on D6313
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T6989, T6711
Differential Revision: https://phab.enlightenment.org/D6314
The class's Eo constructor can return a different object, which makes
the efl_add return that object instead. However, a bug was not
initializing the internal reference count when a different object was
returned.
This reverts commit 8343de6ce3.
This borke mac os build, CI is spamming on irc channels and addtional
tests are failing. I would give this back to the drawingboard.
ref T7029
Differential Revision: https://phab.enlightenment.org/D6310
with -O3 i get a segfault in this test. (with gcc and clang)
It looks like the compilers are doing constant folding because we
declared the struct as constant, however, due to using the address of
the fild the keyword const is simply not true, thus we are getting a
segfault because the address returned by &desc is not correct anymore,
due to the fact the constants are rolled out.
Differential Revision: https://phab.enlightenment.org/D6309
in many cases, a test will intentionally trigger an error to verify that it
is handled correctly. when the test is manually run with EINA_LOG_ABORT set,
this may cause the test to abort, preventing further debugging. by wrapping
intentional cases where critical errors are triggered, debugging tests
becomes easier
ref T7002
Differential Revision: https://phab.enlightenment.org/D6269
so i noticed it was jerky... to move/resize the video obj. it's
because it set fps to 30... well that was silly. didn't help chasing a
ghost, so remove this to avoid chasing hosts.
Glib integration with using of select() syscall doesn't properly
propagates G_IO_ERR condition for network sockets. Problem relies in
_ecore_glib_context_poll_to() where rewriting filedescriptor events to
GPollFD structures reside.
This fixes T5725
@fix
If two daemons are launched one after the other, we would like the
second one to exit directly. The problem is that if the UNIX socket is
unlinked before the binding, the second daemon will succeed to create this
socket, stoling it from the first daemon, and exit because the network
socket is not bindable.
It results in the first daemon to continue running and accepting
connections from the debuggers (network connection) but ignoring the
applications connection (local UNIX connection).
Summary:
this option triggers codepaths which require and interface with an
external project not in the EFL tree, so it should not be tested in
the efl tree
also depending on the version of clouseau used, this causes the test
suite to fail 100% of the time
fix T6985
ref T7023
Reviewers: devilhorns, ManMower
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T6985, T7023
Differential Revision: https://phab.enlightenment.org/D6295
Summary:
all other null returns of _eet_data_descriptor_decode() are treated as
fatal errors when decoding, and failure to do so in this case guarantees
errors later due to incomplete decoding
@fix
ref T5379
Depends on D6293
Reviewers: devilhorns, ManMower
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T5379
Differential Revision: https://phab.enlightenment.org/D6294
Summary:
catching these errors was super annoying since the codebase is mostly
comprised of goto statements, so this should make future debugging easier
Depends on D6292
Reviewers: devilhorns, ManMower
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6293