Git Product home page Git Product logo

coroutines's Introduction

Welcome

  • ๐Ÿ‘€ Professionally, I am in the venn triagram of math, physics, and computer science.
  • ๐ŸŒฑ I am growing my ability to manage projects, by creating these open source projects.
  • I believe these projects are worthy of support, and I welcome contributions and donations.

My Top Skills

  • Creating diagrams with equations and solving them.
  • I am most confident in my ability to use Kotlin, and Python.
  • There are others like SQLite, C, and Java that I have used a considerable amount.

Experience

  • I have spent many years learning the Android system and experiencing the evolution of libraries and documentation. Years of refactoring code, redesigning UI, and doing things the hard way.
  • I have engineered and iterated Firestore database systems. Updated testing and handling migration while supporting multiple versions of client code.
  • Open source project manager - is what I am growing into at the moment.

Brief History

  • If you were to sort all my programs by creation date, the first is written back in 2012!
    • Learned to use Java, C, BASIC, VISUAL BASIC, HTML, CSS, JS before graduating HS
  • Started post secondary in 2014, putting aside programming for a time
    • Revisited programming in a scientific computing course in 2015
  • Started creating native Android apps in Java in the summer of 2016
    • First app published took text Notes completely free, written in Java, september 2016
  • Started using Kotlin in 2017
    • Experimented with Journaling and Design apps
  • Graduated post secondary and began app development daily in 2018
    • Researched and created frameworks and workflows for organizing complex projects
    • Self management and development cycles refinement
  • Began using Linux and creating open source in 2020

coroutines's People

Contributors

dk96-os avatar

Stargazers

 avatar

Watchers

 avatar

coroutines's Issues

Flexible CoroutineQueue Capacity

Currently, the capacity of the Queue is fixed to the value that it was constructed with.

It is possible to remove this capacity and allow a resizable data structure to contain the Deferred results.

Queue AwaitAll Method Counters

The AwaitAll method of the CoroutineQueue can be used to wait for the queue to finish all active tasks, and clear them in queue order.

This is usually only recommended if the active tasks don't have a useful deferred return value, but want to allow them to finish. If it does not matter if the tasks finish, the cancel task is available.

Take a moment to consider the potential use cases where awaitAll is preferred over cancel ...

Enhancements

  1. Feedback from the method (a return value), such as the number of tasks that were waited on would be beneficial. This allows the number of discarded results to be logged, or compared with an expected value.

  2. Limiting the maximum number of tasks that will be waited for (with a method parameter). The Queue structure makes it easy to predict the order of tasks.

Finished Task Counter

The number of tasks that were completed during the awaitAll call can easily be measured and returned.

Await Limit Parameter

The maximum number of tasks to wait for during an awaitAll call can be added to the method declaration.

Await All Example

Suppose there are initially 5 tasks that require completion, waiting in the queue. Suddenly 5 more tasks are added, which have important deferred values that invalidate the inital 5 tasks.

Since the results from the inital 5 are better off being ignored, but need to complete, you use awaitAll.

Before Await Limit Parameter

You have to call awaitAll before adding the new 5 tasks to the Queue. Alternatively, you can call awaitNext 5 times.

After Await Limit Parameter

You know the initial 5 are the only tasks in the Queue, and they are at the front of the Queue.

You can add the 5 new tasks to the Queue at any time, allowing them to start sooner.

You could do additional work at this point, or make the call to awaitAll with a limit of 5.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.