Quantcast
Download
(5 Kb)
Download
Updated: 07/31/20 01:48 PM
Pictures
File Info
Compatibility:
Stonethorn (6.1.5)
Greymoor (6.0.5)
Updated:07/31/20 01:48 PM
Created:09/02/18 10:37 AM
Monthly downloads:38,314
Total downloads:504,822
Favorites:436
MD5:
6.1.5
LibAsync  Popular! (More than 5000 hits)
Version: 2.2.0
by: votan [More]
Description
Read this article of the Wiki.

API
local async = LibAsync
local task = async:Create(name)

The signature of FuncOfTask is:
Code:
local function(task)
end
-- Get the current context, if you are within a FuncOfTask or nil.
Code:
function async:GetCurrent()
-- Create an interruptible task context.
Code:
function async:Create(name)
-- Resume the execution context.
Code:
task:Resume()
-- Suspend the execution context and allow to resume anytime later.
Code:
function task:Suspend()
-- Interupt and fully stop the execution context. Can be called from outside to stop everything.
Code:
function task:Cancel()
-- Run the given FuncOfTask in your task context execution.
Code:
function task:Call(funcOfTask)
-- Continue your task context execution with the given FuncOfTask after the previous as finished.
Code:
function task:Then(funcOfTask)
-- Start an interruptible for-loop.
Code:
function task:For(from, to, step)
function task:For(pairs(tbl))
function task:For(ipairs(tbl))
-- Execute the async-for with the given step-function. The parameters of the step-function are those you would use in your for body.
Code:
function task:Do(func)
The signature if func is function(index) or function(key, value)
If you return async.BREAK within func, it will break the loop.

-- Suspend the execution of your task context for the given delay in milliseconds and then call the given FuncOfTask to continue.
Code:
function task:Delay(delay, funcOfTask)
-- Stop the delay created by Delay
Code:
function task:StopTimer()
-- Set a FuncOfTask as a final handler. Called even if something went wrong in your context.
Code:
function task:Finally(funcOfTask)
-- Set a FuncOfTask as an error handler. Called if something went wrong in your context.
Code:
function task:OnError(funcOfTask)

Example 1
Lua Code:
  1. local async = LibAsync
  2.  
  3. local task = async:Create("example1")
  4.  
  5. local i=1
  6. local function Hello() d("Hello") end
  7. local function World() d("World") end
  8.  
  9. task:Call(function(task)
  10.  d(i)
  11.  task:Call(Hello):Then(World)
  12.  i = i + 1
  13.  return i<1000
  14. end):Then(function() d("end") end)
Example 2
Lua Code:
  1. local async = LibAsync
  2.  
  3. local task = async:Create("example2")
  4.  
  5. local start = GetGameTimeMilliseconds()
  6.  
  7. task:For (1,1000):Do(function(index) d(index) end):Then(
  8. function()
  9.   task:For (pairs({"a", "b"})):Do(function(key, value) d(key,value)
  10.     task:For (ipairs({"c", "d"})):Do(function(key, value) d(key,value)  end)
  11.  end)
  12. end):For(1001,1010):Do(function(index) d(index) end):Then(function(task)
  13.   df("%ims", GetGameTimeMilliseconds() - start)
  14. end)
Remarks
  • Yes, using LibAsync increases the total duration of the process for a better framerate.
  • Lua code can cause hiccups and (micro-)freezes, but has nothing to do the lag.
  • Lua can cause crash to bug report, if too much memory is allocated within one frame. (e.g. string operations) => Spread you code over time.
  • Lua can cause kick to login, if too much server request are done within a time range. (e.g. map pings/buy/sell/ignore, etc.) => Spread you code over time.
version 2.2.0:
- Update to API 100032 "Stonethorn".
- New async functions: While and WaitUntil.

version 2.1.0: Register scheduler as late as possible to take count to all actions not using LibAsync.

version 2.0.2:
- Update to API 100029 "Dragonhold".

version 2.0.1:
- Update to API 100028 "Scalebreaker".

version 2.0.0:
- API bump 100027 "Elsweyr".
- Need to go to 2.0 because of the version check of LibStub.

version 1.10.0:
- API bump 100027 "Elsweyr".
- Use of LibStub is optional.

version 1.9.0:
- Update to API 100026 "Wrathstone".
- For V-Sync off/G-Sync the minimum target framerate is 80.

version 1.8.1:
- Work without LibStub as well.

version 1.8.0:
- API update "Murkmire".
- Adjustment to scheduler calculation: Reduce allowed-time after a burst even if loops still running.
- Change from GetGameTimeMilliseconds to GetGameTimeSeconds, which has in fact more precision. Thanks to @zsban.
Optional Files (0)


Archived Files (9)
File Name
Version
Size
Uploader
Date
2.1.0
5kB
votan
12/13/19 02:49 PM
2.0.2
5kB
votan
10/03/19 04:39 AM
2.0.1
5kB
votan
07/29/19 02:17 PM
2.0.0
5kB
votan
05/15/19 01:16 PM
1.10.0
5kB
votan
05/04/19 01:36 PM
1.9.0
4kB
votan
02/23/19 10:15 AM
1.8.1
4kB
votan
11/09/18 01:07 PM
1.8.0
6kB
votan
10/06/18 02:10 PM
1.7
6kB
votan
09/02/18 10:37 AM


Post A Reply Comment Options
Unread 08/05/20, 08:03 AM  
Marazota

Forum posts: 208
File comments: 1296
Uploads: 0
rolling back to old vesion fixed this issue but need to find a way to get rid of libstub anyway
Report comment to moderator  
Reply With Quote
Unread 08/04/20, 03:18 PM  
Marazota

Forum posts: 208
File comments: 1296
Uploads: 0
hey what i need to fix to make this addon work
its not working with new version of library...

also this addon isnt presented on esoui



Report comment to moderator  
Reply With Quote
Unread 08/03/20, 04:05 PM  
orcashow

Forum posts: 1
File comments: 14
Uploads: 0
Re: Re: Re: Re: Inventory Insight errors after today's LibAsync update

We might want to keep in mind that many of the authors are prepping addon updates for Update 27 which is coming sometime here in August. It takes time & all the authors create & maintain their addons in their spare time... and for no pay. If you need to do the quick-fix/workaround for now then that's the best recommendation. Once Update 27 hits, most if not all of our favorite addons will be current to the new API changes. Most importatn, DO NOT rage on the addon authors. It can be a thankless job which none of the rest of us have stepped up to do. Try to be patient. They got this.
Report comment to moderator  
Reply With Quote
Unread 08/02/20, 07:19 PM  
fgoron2000

Forum posts: 0
File comments: 120
Uploads: 0
Re: Re: Re: Re: Inventory Insight errors after today's LibAsync update

Originally Posted by DigitalHype
Originally Posted by fgoron2000
Originally Posted by DigitalHype
Appears I'm not the only one having issues with Inventory Insight after updating LibAsync to current.

Others are report that rolling back LibAsync to 2.1.0 solves the issue. See threads over in that addon:

https://www.esoui.com/downloads/info....html#comments

This recommended fix worked fine for me, the caveat is simply that when Inventory Insight gets updated that you do a fresh install, but until that time, the fix worked
Good to hear. But, this isn't a fix. This is a workaround. What needs to happen here? Does Inventory Insight need to so something to work with the new LibAsync? If so, what? I fear that InventoryInsight might be abandonware at this point. Do we need a fork, or is it still being maintained?
I understand that it was a temporary workaround. I didn't mean for the word fix to imply that the issue had been permanently resolved, sorry if I gave that impression. That's why I referenced others' recommendations to do a fresh reinstall of InventoryInsight after it was updated, because the workaround involved a modification to the Inventory Insight addon, not to LibAsync. By the way, to answer your question, it is not abandonware. It's also already been updated since your post, and it addressed the issue of its LibAsync dependency. And thus far, I'm having no issues with either LibAsync or Inventory Insight at this point, and I didn't even need to do a fresh reinstall.
Report comment to moderator  
Reply With Quote
Unread 08/01/20, 08:45 AM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 142
File comments: 798
Uploads: 9
Please maintain some kind of civility. My statement was direct and in response to statements that people have been making that are false and misleading about LibAsync, Votan's MiniMap, other mods, and now Inventory Insight.

My last statement did not include specific version numbers because it is sufficient to say latest version. I should not have to state that users should be using LibAsync 2.2.0, and Inventory Insight 3.45. However, Inventory Insight 3.45 was only uploaded this morning.

Mod authors should not have to argue with users when they are explaining that if all the mods a user is using were up to date that things would work properly. Mod authors expect users to be using the current version of everything because if you do not then we can not predict what other issues may occur. I do not test with older versions of any mod installed therefore I am not able to reproduce the errors reported.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Last edited by Sharlikran : 08/01/20 at 10:03 AM.
Report comment to moderator  
Reply With Quote
Unread 08/01/20, 06:22 AM  
MaulkinTheGolden

Forum posts: 0
File comments: 1
Uploads: 0
Originally Posted by pandros1484
Originally Posted by Sharlikran
Originally Posted by TagCdog
Hi All,

I'd imagine it is good form to keep posts about another addon on that specific addon's comments page.

In this case I have a working solution which allows you to keep the newest version of LibAsync installed. See it by reading Inventory Insight's comments page.

With that said, it is still a very buggy addon (maybe it just doesn't play well with others?) that needs to be updated/fixed. I don't think it is being maintained anymore which is sad. Disabling it resolved a whole bunch of problems I was experiencing so if anything is acting up try disabling Inventory Insight first.
Inventory Insight has no issues nor does LibAsync. There are too many people posting things that do not address any issues and making suggestions that make things worse.

I have the current version of LibAsync and while I do not use Votan's Minimap on a regular basis I test with it all the time because people post errors that can not be possible. So I test it and then share that I can not reproduce the error.

None of the claims are true, people are simply not updating their mods and continue to try and use older version of things. I have had three users provide me with their addons folder and all I did was open minion, right click and choose Reinstall on each mod. Then ask them what the error is and how they reproduce it. I never could get the error to happen. Send the folder back and they replace theirs with the updated versions, no errors.

Since I did that three times I no longer do it because users can do the same thing.
Putting your borderline rude tone aside, I have tried exactly what you said you did for the users and yet I still have the same error code;

user:/AddOns/IIfA/IIfA.lua:39: Cannot find a library instance of "LibAsync".
stack traceback:
user:/AddOns/LibStub/LibStub/LibStub.lua:87: in function 'LibStub:GetLibrary'
user:/AddOns/IIfA/IIfA.lua:39: in function '(main chunk)'

if you have any actual suggestions I'm all ears. Otherwise there is no need to throw a temper tantrum friend.
The problem there is with the IIfA (Inventory Insight) add-on that is not being updated.

If you download the previous version (2.1) of libasync you can put it in the libs subfolder of IIfa and explicitly reference it from the IIfA.txt file, just below the reference to LibCustomTitles (line 12).

Your IIfA will then use the old version while all other add-ons (like Votan Minimap) will use the new version which they require, and that will solve the problem of the stale IIfA add-on for now.
Report comment to moderator  
Reply With Quote
Unread 08/01/20, 03:10 AM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 142
File comments: 798
Uploads: 9
Originally Posted by TagCdog
Hi All,

I'd imagine it is good form to keep posts about another addon on that specific addon's comments page.

In this case I have a working solution which allows you to keep the newest version of LibAsync installed. See it by reading Inventory Insight's comments page.

With that said, it is still a very buggy addon (maybe it just doesn't play well with others?) that needs to be updated/fixed. I don't think it is being maintained anymore which is sad. Disabling it resolved a whole bunch of problems I was experiencing so if anything is acting up try disabling Inventory Insight first.
Inventory Insight has no issues nor does LibAsync. There are too many people posting things that do not address any issues and making suggestions that make things worse.

I have the current version of LibAsync and while I do not use Votan's Minimap on a regular basis I test with it all the time because people post errors that can not be possible. So I test it and then share that I can not reproduce the error.

None of the claims are true, people are simply not updating their mods and continue to try and use older version of things. I have had three users provide me with their addons folder and all I did was open minion, right click and choose Reinstall on each mod. Then ask them what the error is and how they reproduce it. I never could get the error to happen. Send the folder back and they replace theirs with the updated versions, no errors.

Since I did that three times I no longer do it because users can do the same thing.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Report comment to moderator  
Reply With Quote
Unread 08/01/20, 02:35 AM  
shnawkilla

Forum posts: 0
File comments: 4
Uploads: 0
Thumbs up update

Ty a lot
Report comment to moderator  
Reply With Quote
Unread 08/01/20, 01:03 AM  
TagCdog

Forum posts: 17
File comments: 32
Uploads: 0
Hi All,

I'd imagine it is good form to keep posts about another addon on that specific addon's comments page.

In this case I have a working solution which allows you to keep the newest version of LibAsync installed. See it by reading Inventory Insight's comments page.

With that said, it is still a very buggy addon (maybe it just doesn't play well with others?) that needs to be updated/fixed. I don't think it is being maintained anymore which is sad. Disabling it resolved a whole bunch of problems I was experiencing so if anything is acting up try disabling Inventory Insight first.
Report comment to moderator  
Reply With Quote
Unread 07/31/20, 11:20 PM  
DigitalHype

Forum posts: 1
File comments: 28
Uploads: 0
Re: Re: Re: Inventory Insight errors after today's LibAsync update

Originally Posted by fgoron2000
Originally Posted by DigitalHype
Appears I'm not the only one having issues with Inventory Insight after updating LibAsync to current.

Others are report that rolling back LibAsync to 2.1.0 solves the issue. See threads over in that addon:

https://www.esoui.com/downloads/info....html#comments

This recommended fix worked fine for me, the caveat is simply that when Inventory Insight gets updated that you do a fresh install, but until that time, the fix worked
Good to hear. But, this isn't a fix. This is a workaround. What needs to happen here? Does Inventory Insight need to so something to work with the new LibAsync? If so, what? I fear that InventoryInsight might be abandonware at this point. Do we need a fork, or is it still being maintained?
Report comment to moderator  
Reply With Quote
Unread 07/31/20, 08:09 PM  
fgoron2000

Forum posts: 0
File comments: 120
Uploads: 0
Re: Re: Inventory Insight errors after today's LibAsync update

Originally Posted by DigitalHype
Appears I'm not the only one having issues with Inventory Insight after updating LibAsync to current.

Others are report that rolling back LibAsync to 2.1.0 solves the issue. See threads over in that addon:

https://www.esoui.com/downloads/info....html#comments

This recommended fix worked fine for me, the caveat is simply that when Inventory Insight gets updated that you do a fresh install, but until that time, the fix worked
Report comment to moderator  
Reply With Quote
Unread 07/31/20, 05:12 PM  
DigitalHype

Forum posts: 1
File comments: 28
Uploads: 0
Re: Inventory Insight errors after today's LibAsync update

Appears I'm not the only one having issues with Inventory Insight after updating LibAsync to current.

Others are report that rolling back LibAsync to 2.1.0 solves the issue. See threads over in that addon:

https://www.esoui.com/downloads/info....html#comments
Report comment to moderator  
Reply With Quote
Unread 07/31/20, 05:08 PM  
DigitalHype

Forum posts: 1
File comments: 28
Uploads: 0
Inventory Insight errors after today's LibAsync update

[oops edit to add errors]

Just updated LibAsync and Inventory Insight is throwing errors now. Any thoughts?

user:/AddOns/IIfA/IIfA.lua:39: Cannot find a library instance of "LibAsync".
stack traceback:
user:/AddOns/LibStub/LibStub/LibStub.lua:87: in function 'LibStub:GetLibrary'
|caaaaaa<Locals> self = [table:1]{SILENT = T, minor = 7}, major = "LibAsync" </Locals>|r
user:/AddOns/IIfA/IIfA.lua:39: in function '(main chunk)'
|caaaaaa<Locals> BACKPACK = ud, BANK = ud, IIFA_COLOR_DEFAULT = [table:2]{a = 1, b = 1, g = 0.6, r = 0.2} </Locals>|r
Last edited by DigitalHype : 07/31/20 at 05:08 PM.
Report comment to moderator  
Reply With Quote
Unread 07/24/20, 09:11 AM  
votan
 
votan's Avatar
AddOn Author - Click to view AddOns

Forum posts: 520
File comments: 1356
Uploads: 35
Re: What older ver. to get so the error won't pop ?

Originally Posted by Eagleheart
I'm about to install Votans Minimap & good that came to look at comments before installing LibAsync. @Desertforce do you know what ver. to install so error won't pop & where to find it ? Wish Good weekend to author & fans.

Kindly: Fedaygin
The LibMapPins has removed AUI support functions. That's why LibMapPins-1.0 r22 works for desertforce.
But that is not a problem of LibAsync.
You have to try out yourself. For me, all works as it should. (Developers always say that)

And Thank You.
__________________
@votan73 (EU - megaserver)
Report comment to moderator  
Reply With Quote
Unread 07/24/20, 01:59 AM  
Eagleheart
 
Eagleheart's Avatar

Forum posts: 9
File comments: 3
Uploads: 0
Cool What older ver. to get so the error won't pop ?

I'm about to install Votans Minimap & good that came to look at comments before installing LibAsync. @Desertforce do you know what ver. to install so error won't pop & where to find it ? Wish Good weekend to author & fans.

Kindly: Fedaygin
__________________
​"Recycle, Reduce Single Plastic Use & Use Fabric Groceries Bag" Help friends & relatives: https://transferwise.com/invite/u/09205c True mid-market rate & transparent fees🤑Exceptional customer revs on Trustpilot. Good Telly Content must Continue. Check & Share Around Wicked Wide Web o/
https://docs.google.com/document/d/1...it?usp=sharing
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: