After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 724879 - Add async calls
Add async calls
Status: RESOLVED OBSOLETE
Product: libmediaart
Classification: Other
Component: Cache
unspecified
Other Mac OS
: Normal normal
: ---
Assigned To: libmediaart maintainer(s)
libmediaart maintainer(s)
Depends on:
Blocks: 673935
 
 
Reported: 2014-02-21 12:48 UTC by Bastien Nocera
Modified: 2021-05-25 11:25 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bastien Nocera 2014-02-21 12:48:43 UTC
Currently, all of libmediaart calls are sync, and don't offer async versions even when the library does synchronous I/O underneath. Async calls should be fairly straight forward to implement using GTask.
Comment 1 Martyn Russell 2014-09-10 14:30:38 UTC
Not sure I can get this in before the releases are made in the next few weeks - due to the API break :/

But here it is:

https://git.gnome.org/browse/libmediaart/log/?h=async-api
Comment 2 Philip Van Hoof 2014-09-12 13:56:20 UTC
ps. API addition is not an API break (if done right), so addition of the async APIs can be done as a minor version increment in semver rules.
Comment 3 Bastien Nocera 2014-09-12 14:11:47 UTC
There are API changes though. Pretty much every function in libmediaart/extract.h is an ABI break, and media_art_remove() in libmediaart/cache.h

I don't think it's necessary for sync calls to take cancellables, that would reduce the API churn.
Comment 4 Philip Van Hoof 2014-09-12 14:24:14 UTC
(In reply to comment #3)
> There are API changes though. Pretty much every function in
> libmediaart/extract.h is an ABI break, and media_art_remove() in
> libmediaart/cache.h
> 
> I don't think it's necessary for sync calls to take cancellables, that would
> reduce the API churn.

Ok fair enough. Our major number is still 0 so semver allows to use minor version increments for API changes in that exception case. But as I mentioned on the ML: I think as soon as these APIs are ok; we should do a 1.0.0 and use semver: tracker is a component, being used in production, depending on it.
Comment 5 Bastien Nocera 2014-09-12 14:30:55 UTC
(In reply to comment #4)
> Ok fair enough. Our major number is still 0 so semver allows to use minor
> version increments for API changes in that exception case. But as I mentioned
> on the ML: I think as soon as these APIs are ok; we should do a 1.0.0 and use
> semver: tracker is a component, being used in production, depending on it.

"semver"? The stuff at semver.org that the author makes you think he invented?

Yeah, sonames:
https://git.gnome.org/browse/gnome-desktop/tree/configure.ac#n23
Comment 6 Philip Van Hoof 2014-09-12 14:35:00 UTC
(In reply to comment #5)

> "semver"? The stuff at semver.org that the author makes you think he invented?

yep, that stuff. Don't care much about who claims to have invented it. Just like how the LGPL is usable, is semver usable :)
 
> Yeah, sonames:
> https://git.gnome.org/browse/gnome-desktop/tree/configure.ac#n23

Sounds right.
Comment 7 Martyn Russell 2014-09-12 14:47:26 UTC
(In reply to comment #3)
> There are API changes though. Pretty much every function in
> libmediaart/extract.h is an ABI break, and media_art_remove() in
> libmediaart/cache.h
> 
> I don't think it's necessary for sync calls to take cancellables, that would
> reduce the API churn.

Some of those APIs do multiple I/O operations and can block for an unknown time, so it makes sense in a bunch of cases. For example, downloading content or removing multiple (or all) media art.

The cancellables also make it easier to hook up to the async operations.


(In reply to comment #2)
> ps. API addition is not an API break (if done right), so addition of the async
> APIs can be done as a minor version increment in semver rules.

Pretty much all the API changes, so I think it's unavoidable to break API/ABI.
Comment 8 André Klapper 2021-05-25 11:25:41 UTC
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org.
As part of that, we are mass-closing older open tickets in bugzilla.gnome.org
which have not seen updates for a longer time (resources are unfortunately
quite limited so not every ticket can get handled).

If you can still reproduce the situation described in this ticket in a recent
and supported software version, then please follow
  https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines
and create a new enhancement request ticket at
  https://gitlab.gnome.org/GNOME/libmediaart/-/issues/

Thank you for your understanding and your help.