SCHED_SETSCHEDULER
Section: Linux Programmer's Manual (2)Updated: 2008-11-06
Index Return to Main Contents
NAME
sched_setscheduler, sched_getscheduler - set and get scheduling policy/parametersSYNOPSIS
#include <sched.h> int sched_setscheduler(pid_t pid, int policy,
const struct sched_param *param); int sched_getscheduler(pid_t pid); struct sched_param { ... int sched_priority; ... };
DESCRIPTION
sched_setscheduler() sets both the scheduling policy and the associated parameters for the process whose ID is specified in pid. If pid equals zero, the scheduling policy and parameters of the calling process will be set. The interpretation of the argument param depends on the selected policy. Currently, Linux supports the following "normal" (i.e., non-real-time) scheduling policies:- SCHED_OTHER
- the standard round-robin time-sharing policy;
- SCHED_BATCH
- for "batch" style execution of processes; and
- SCHED_IDLE
- for running very low priority background jobs.
The following "real-time" policies are also supported, for special time-critical applications that need precise control over the way in which runnable processes are selected for execution:
- SCHED_FIFO
- a first-in, first-out policy; and
- SCHED_RR
- a round-robin policy.
The semantics of each of these policies are detailed below.
sched_getscheduler() queries the scheduling policy currently applied to the process identified by pid. If pid equals zero, the policy of the calling process will be retrieved.
Scheduling Policies
The scheduler is the kernel component that decides which runnable process will be executed by the CPU next. Each process has an associated scheduling policy and a static scheduling priority, sched_priority; these are the settings that are modified by sched_setscheduler(). The scheduler makes it decisions based on knowledge of the scheduling policy and static priority of all processes on the system.For processes scheduled under one of the normal scheduling policies (SCHED_OTHER, SCHED_IDLE, SCHED_BATCH), sched_priority is not used in scheduling decisions (it must be specified as 0).
Processes scheduled under one of the real-time policies (SCHED_FIFO, SCHED_RR) have a sched_priority value in the range 1 (low) to 99 (high). (As the numbers imply, real-time processes always have higher priority than normal processes.) Note well: POSIX.1-2001 only requires an implementation to support a minimum 32 distinct priority levels for the real-time policies, and some systems supply just this minimum. Portable programs should use sched_get_priority_min(2) and sched_get_priority_max(2) to find the range of priorities supported for a particular policy.
Conceptually, the scheduler maintains a list of runnable processes for each possible sched_priority value. In order to determine which process runs next, the scheduler looks for the non-empty list with the highest static priority and selects the process at the head of this list.
A process's scheduling policy determines where it will be inserted into the list of processes with equal static priority and how it will move inside this list.
All scheduling is preemptive: if a process with a higher static priority becomes ready to run, the currently running process will be preempted and returned to the wait list for its static priority level. The scheduling policy only determines the ordering within the list of runnable processes with equal static priority.
SCHED_FIFO: First In-First Out scheduling
SCHED_FIFO can only be used with static priorities higher than 0, which means that when a SCHED_FIFO processes becomes runnable, it will always immediately preempt any currently running SCHED_OTHER, SCHED_BATCH, or SCHED_IDLE process. SCHED_FIFO is a simple scheduling algorithm without time slicing. For processes scheduled under the SCHED_FIFO policy, the following rules apply:- *
- A SCHED_FIFO process that has been preempted by another process of higher priority will stay at the head of the list for its priority and will resume execution as soon as all processes of higher priority are blocked again.
- *
- When a SCHED_FIFO process becomes runnable, it will be inserted at the end of the list for its priority.
- *
- A call to sched_setscheduler() or sched_setparam(2) will put the SCHED_FIFO (or SCHED_RR) process identified by pid at the start of the list if it was runnable. As a consequence, it may preempt the currently running process if it has the same priority. (POSIX.1-2001 specifies that the process should go to the end of the list.)
- *
- A process calling sched_yield(2) will be put at the end of the list.
No other events will move a process scheduled under the SCHED_FIFO policy in the wait list of runnable processes with equal static priority.
A SCHED_FIFO process runs until either it is blocked by an I/O request, it is preempted by a higher priority process, or it calls sched_yield(2).
SCHED_RR: Round Robin scheduling
SCHED_RR is a simple enhancement of SCHED_FIFO. Everything described above for SCHED_FIFO also applies to SCHED_RR, except that each process is only allowed to run for a maximum time quantum. If a SCHED_RR process has been running for a time period equal to or longer than the time quantum, it will be put at the end of the list for its priority. A SCHED_RR process that has been preempted by a higher priority process and subsequently resumes execution as a running process will complete the unexpired portion of its round robin time quantum. The length of the time quantum can be retrieved using sched_rr_get_interval(2).SCHED_OTHER: Default Linux time-sharing scheduling
SCHED_OTHER can only be used at static priority 0. SCHED_OTHER is the standard Linux time-sharing scheduler that is intended for all processes that do not require the special real-time mechanisms. The process to run is chosen from the static priority 0 list based on a dynamic priority that is determined only inside this list. The dynamic priority is based on the nice value (set by nice(2) or setpriority(2)) and increased for each time quantum the process is ready to run, but denied to run by the scheduler. This ensures fair progress among all SCHED_OTHER processes.SCHED_BATCH: Scheduling batch processes
(Since Linux 2.6.16.) SCHED_BATCH can only be used at static priority 0. This policy is similar to SCHED_OTHER in that it schedules the process according to its dynamic priority (based on the nice value). The difference is that this policy will cause the scheduler to always assume that the process is CPU-intensive. Consequently, the scheduler will apply a small scheduling penalty with respect to wakeup behaviour, so that this process is mildly disfavored in scheduling decisions.This policy is useful for workloads that are non-interactive, but do not want to lower their nice value, and for workloads that want a deterministic scheduling policy without interactivity causing extra preemptions (between the workload's tasks).
SCHED_IDLE: Scheduling very low priority jobs
(Since Linux 2.6.23.) SCHED_IDLE can only be used at static priority 0; the process nice value has no influence for this policy.This policy is intended for running jobs at extremely low priority (lower even than a +19 nice value with the SCHED_OTHER or SCHED_BATCH policies).
Privileges and resource limits
In Linux kernels before 2.6.12, only privileged (CAP_SYS_NICE) processes can set a non-zero static priority (i.e., set a real-time scheduling policy). The only change that an unprivileged process can make is to set the SCHED_OTHER policy, and this can only be done if the effective user ID of the caller of sched_setscheduler() matches the real or effective user ID of the target process (i.e., the process specified by pid) whose policy is being changed.Since Linux 2.6.12, the RLIMIT_RTPRIO resource limit defines a ceiling on an unprivileged process's static priority for the SCHED_RR and SCHED_FIFO policies. The rules for changing scheduling policy and priority are as follows:
- *
- If an unprivileged process has a non-zero RLIMIT_RTPRIO soft limit, then it can change its scheduling policy and priority, subject to the restriction that the priority cannot be set to a value higher than the maximum of its current priority and its RLIMIT_RTPRIO soft limit.
- *
- If the RLIMIT_RTPRIO soft limit is 0, then the only permitted changes are to lower the priority, or to switch to a non-real-time policy.
- *
- Subject to the same rules, another unprivileged process can also make these changes, as long as the effective user ID of the process making the change matches the real or effective user ID of the target process.
- *
- Special rules apply for the SCHED_IDLE: an unprivileged process operating under this policy cannot change its policy, regardless of the value of its RLIMIT_RTPRIO resource limit.
Privileged (CAP_SYS_NICE) processes ignore the RLIMIT_RTPRIO limit; as with older kernels, they can make arbitrary changes to scheduling policy and priority. See getrlimit(2) for further information on RLIMIT_RTPRIO.
Response time
A blocked high priority process waiting for the I/O has a certain response time before it is scheduled again. The device driver writer can greatly reduce this response time by using a "slow interrupt" interrupt handler.Miscellaneous
Child processes inherit the scheduling policy and parameters across a fork(2). The scheduling policy and parameters are preserved across execve(2).Memory locking is usually needed for real-time processes to avoid paging delays; this can be done with mlock(2) or mlockall(2).
Since a non-blocking infinite loop in a process scheduled under SCHED_FIFO or SCHED_RR will block all processes with lower priority forever, a software developer should always keep available on the console a shell scheduled under a higher static priority than the tested application. This will allow an emergency kill of tested real-time applications that do not block or terminate as expected. See also the description of the RLIMIT_RTTIME resource limit in getrlimit(2).
POSIX systems on which sched_setscheduler() and sched_getscheduler() are available define _POSIX_PRIORITY_SCHEDULING in <unistd.h>.
RETURN VALUE
On success, sched_setscheduler() returns zero. On success, sched_getscheduler() returns the policy for the process (a non-negative integer). On error, -1 is returned, and errno is set appropriately.ERRORS
- EINVAL
- The scheduling policy is not one of the recognized policies, or param does not make sense for the policy.
- EPERM
- The calling process does not have appropriate privileges.
- ESRCH
- The process whose ID is pid could not be found.
CONFORMING TO
POSIX.1-2001 (but see BUGS below). The SCHED_BATCH and SCHED_IDLE policies are Linux-specific.NOTES
POSIX.1 does not detail the permissions that an unprivileged process requires in order to call sched_setscheduler(), and details vary across systems. For example, the Solaris 7 manual page says that the real or effective user ID of the calling process must match the real user ID or the save set-user-ID of the target process.Originally, Standard Linux was intended as a general-purpose operating system being able to handle background processes, interactive applications, and less demanding real-time applications (applications that need to usually meet timing deadlines). Although the Linux kernel 2.6 allowed for kernel preemption and the newly introduced O(1) scheduler ensures that the time needed to schedule is fixed and deterministic irrespective of the number of active tasks, true real-time computing was not possible up to kernel version 2.6.17.
Real-time features in the mainline Linux kernel
From kernel version 2.6.18 onwards, however, Linux is gradually becoming equipped with real-time capabilities, most of which are derived from the former realtime-preempt patches developed by Ingo Molnar, Thomas Gleixner, Steven Rostedt, and others. Until the patches have been completely merged into the mainline kernel (this is expected to be around kernel version 2.6.30), they must be installed to achieve the best real-time performance. These patches are named:patch-kernelversion-rtpatchversion
and can be downloaded from http://www.kernel.org/pub/linux/kernel/projects/rt/.
Without the patches and prior to their full inclusion into the mainline kernel, the kernel configuration offers only the three preemption classes CONFIG_PREEMPT_NONE, CONFIG_PREEMPT_VOLUNTARY, and CONFIG_PREEMPT_DESKTOP which respectively provide no, some, and considerable reduction of the worst-case scheduling latency.
With the patches applied or after their full inclusion into the mainline kernel, the additional configuration item CONFIG_PREEMPT_RT becomes available. If this is selected, Linux is transformed into a regular real-time operating system. The FIFO and RR scheduling policies that can be selected using sched_setscheduler() are then used to run a process with true real-time priority and a minimum worst-case scheduling latency.
BUGS
POSIX says that on success, sched_setscheduler() should return the previous scheduling policy. Linux sched_setscheduler() does not conform to this requirement, since it always returns 0 on success.SEE ALSO
getpriority(2), mlock(2), mlockall(2), munlock(2), munlockall(2), nice(2), sched_get_priority_max(2), sched_get_priority_min(2), sched_getaffinity(2), sched_getparam(2), sched_rr_get_interval(2), sched_setaffinity(2), sched_setparam(2), sched_yield(2), setpriority(2), capabilities(7), cpuset(7)Programming for the real world - POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0
The kernel source file Documentation/scheduler/sched-rt-group.txt (since kernel 2.6.25).
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.
Index
This document was created by man2html, using the manual pages.
Time: 05:33:05 GMT, December 24, 2015


| Trees | Indices | Help |
|---|
|
|
|
|||
| string |
|
||
| NoneType |
|
||
| WPSProvider | NoneType |
|
||
| WPS | NoneType |
|
||
| Process | NoneType |
|
||
|
|||
| WPS |
|
||
| Process |
|
||
| InputOutput |
|
||
| WPSProvider |
|
||
| WPS |
|
||
| Process |
|
||
| InputOutput |
|
||
| InputOutput |
|
|
|||
E = ElementMaker()
|
|||
wps_em = ElementMaker(namespace= ns ['wps'], nsmap= ns)
|
|||
ows_em = ElementMaker(namespace= ns ['ows'], nsmap= ns)
|
|||
xlink_em = ElementMaker(namespace= ns ['ows'], nsmap= ns) maps the xml namespaces of pywps |
|||
ns_map = {"Capabilities": f "{{{ns['wps']}}}Capabilities", "Pr
|
|
returns path to file for artefact or None if there is no such file
|
This method adds new wps server to the database. It receives a server url as parameter from the admin page and creates new wps server and service provider objects, which will saved in the database. It calls methods, which check if the objects are already in database. In case, when object already exists, his fields will be overwritten with actual information from the WPS server. After that the method update_wps_processes will called.
|
Check that the service_provider instance given in parameter is not already in database. The instances are equal, if their 'provider_name' and 'provider_site' fields are equal If database has the same instance, it will be returned. If database not contains instance, None will be returned.
|
Check that the wps_service instance given in parameter is not already in database. The instances are equal, if their 'title' fields are equal. If database has the same instance, it will be returned. If database not contains instance, None will be returned.
|
Check that the wps process instance given in parameter is not already in database. The instances are equal, if their 'identifier' fields are equal and both processes are from the same wps server If database has the same instance, it will be returned. If database not contains instance, None will be returned.
|
Check that the input or output instance given in parameter is not already in database. The instances are equal, if their 'identifier' fields are equal,they have the same role (Input or Output) and they belong to the same process.
|
Overwrites the fields of WPS server object in database
|
Overwrites the fields of WPS process object in database
|
Overwrites the fields of WPS input or output object in database
|
Parses the xml file provided by the wps server. Searches for the information about the WPS server provider. Returns a new object of the class WPSProvider
|
Parses the xml file provided by the wps server. Searches for the information about the WPS server. Returns a new object of the class WPS
|
Parses the xml file provided by the wps server. Searches for the information about the WPS Process. Returns a new object of the class Process
|
Parses the xml file provided by the wps server. Searches for the information about the WPS process input. Returns a new object of the class InputOutput with ROLE Input
|
Parses the xml file provided by the wps server. Searches for the information about the WPS process output. Returns a new object of the class InputOutput with ROLE Output
|
|
ns_map
|
| Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Wed Feb 7 13:16:45 2018 | http://epydoc.sourceforge.net |


apparatus figref[FIG. VSTOL airfoils control rings lift embodiment ring power view airfoil upper lower perspective document-id:: (e.g., EMI-D citation: cited [patcit]: apparatus. configured fuselage used exemplary classification-national:: drive shown examiner plurality Referring aircraft articulation wheels generate remote rotating variant, claim comprises e.g., position present shape attached data embodiment, pair CLAIM-TEXT:. claim-ref[claim craft disclosure, frame portion rings. rotation disclosed. generation respect rotate use Thus, appreciated aspect configuration disclosure second tail vertical air airfoils. direction element operator provide support wheel However, flight lift. maintain rod short torque using airfoil. apparatus, counter described design energy example, fully given greater mechanism pitch processing rings, takeoff action-date: allows curved disclosure. electromagnetic etc. extensible generated generating-office:: operation recognized respective substantially (e.g. (or Classification: Moreover, aircraft, al. applied articulating change disposed effective environmental house include landing multiple orientation ring. rings; various wireless aerodynamic allow and/or applicant connection contact currents different edge generating human illustrated inline internal main methods moving ordinary principles radar radiation receiving relative rotatable satellite skill (i.e., (such Furthermore, Similarly, achieved addition, applications articulated aspects beams capability changing contra-rotating cpc-version-indicator:: curvature designs driven elements embodiments fixed function fuselage. having increase interface leading motion necessary operated outer previously shaped shown, source wide (and CLAIM-TEXT:a Conversely, Therefore, accordance aforementioned alignment allowing alternative alternatively brake central certain coordination cross-section desired device discussed dish drag embodiments, etc.) foregoing fuel generally herein. increases inter lightweight low lowered materials motors moves number offer operate operating opposite points position. provided radially raised reduce reduced requirements respectively. riders rotated rotational rotor screw sensors showing slanted specific surveillance system. systems transceiver upward utilizes variety weight (RCS) (i) (ii) Additionally, [addressbook]: adapted airfoils) airfoils, alia, altered altitude ambient angle aspect, attitude autonomous axis based capacity. center comprising: configuration, conventional craft, depending description desired. detailed driving entity equipment etc.). exterior external facilitate features flat gaseous generates high horizontal illustrating improved including inner instance, lift, link located material mechanisms motor navigation on-board operation, oriented outward patent perpendicular positioned program range rapidly reference ring) ring, rotation. run significant small somewhat steps sufficient surfaces thread to, turn turning used, useful uses wireframe


Rock Music and Skinny Jeans
A good pair of jeans is hard to find, because for all the companies that make them, very few put in the legwork for both a very good fit and very fine materials. There are many "expensive" pairs, but there are fewer truly well-made pairs.
For Telegram we're only doing one cut to start, and that's a skinny cut made of Japanese denim.
Skinny jeans have been a part the "leading edge" of culture for decades now, and it's remarkable how well this look has held up. (Especially when paired with a nice leather jacket and bedhead-style hair). Let's recap:
- Older: The Ramones, or the Sex Pistols
- Newer: The Strokes, or Justice
- Even newer: Lenny Kravitz at the Super Bowl, or Kanye's more recent looks
Why skinny jeans? Everyone has their own tastes, and natural variation in body proportions mean that cuts from some manufacturers look great on some but hideous on others. But for those of reasonably slim build, a narrow cut fits the bill just right.
One thing we found when designing and cutting our own jeans was that a lot of companies get it wrong. They either make the jean out of very rigid denim (which is too hard to move around in) or very elastic denim (which doesn't wear as well as pure cotton). For Telegram we looked for a happy medium between these two -- we found an importer who could hook us up with Kaihara denim, from a mill dating back to 1893 (!). We then designed, cut, and sewed our first pairs here in Brooklyn, and found that the result was form-fitting but durable, and comfortable to boot.
Of course, these are handmade, "artisinal" quality jeans, so the price went up commeasurately. But we think it's worth it.
The materials and workmanship speak for themselves, and our product photos show them off beautifully. Check it out: Telegram Jeans. Japanese denim, cut and sewn in Brooklyn.


{% if not board %}
{% with development_cards=member.get_current_development_cards %}
{% with num_development_cards=development_cards|length %}
Your tasks under development
{% if num_development_cards == 0 %}
You are not working in anything at the moment.
{% else %}
Tasks in development
You are working in {{num_development_cards}} tasks.
{% if num_development_cards > 2 %}
You are multitasking too much.  You have a good equilibrium and are not multitasking. Keep the good work!
{% endif %}


The results are given in form of a results.csv. Each line corresponds to the results for one gene. The results file is structured as follows:
| Gene ID | Bayes Factor | [Learnt covariance function parameters] |
The Gene ID is the ID given in the input files. The Bayes Factor is a log-score for model comparison of the individual model against the common model. The individual model assumes both samples (treatment and control) to be modelled individually by one Gaussian process each. In contrast the common model assumes both samples to be modelled by one Gaussian Process. Both likelihoods are computed and the score is created by contrasting the both likelihoods:
All plots are saved in a subfolder <outdir>/plots/


Home
Menu
Contact Us
About
Sambusa
A pastry shellfilled with your choice of either beef, lentils, or spinach
Lamb Tibs Firfir
$11.99
Green Salad
$5.99
Yetimatim Fitfit
$5.99
Yebere Derek Tibs
$11.99
Yebere Lega Tibs
$9.99
Juicy Zilzil Tibs
$10.99
Gored Gored
$11.99
Kay Minchet Abish
$8.99
Vegetarian Combination
$8.99
Lamb Kay Wot
$9.99
Chicken Wot
$8.99
Coffee
$2.00


 HTML is the canvas and outlines, you can change it so it's a square canvas, or circular, or triangular etc CSS is the paint and shapes, depending on how you style everything, the painting can be beautiful or horrendus even though it has the same canvas shape.
Explain control flow and loops using an example process from everyday life, for example 'waking up' or 'brushing your teeth'. (But not those ones).
Control Flow is the sequence of events that occur. Like how you accessed this webpage: Imagine yourself as a piece of code to get to this web page, you would have to grab your mouse and click on the link to get here - this is the correct control flow, if you clicked first and THEN moved your mouse, you would have failed to get here. Loops can be interpreted literally, it's simply a repetition of some actions: Since you are reading this paragraph, we'll use that as an example. You don't keep telling yourself to read after every word, you are simply reading - this can be interpreted as a loop, you have decided to read this paragraph, so you are looping through the "read" command for yourself until you finish reading. You don't keep deciding "I want to read this paragraph" after every word, you simply initiate it by thinking about it and then you will read the whole thing (hopefully).
Describe what the DOM is and an example of how you might interact with it.
The DOM represents the entirety of a webpage. Imagine large tree structure with a lot of different pieces branching off below it: At the top, you have document, this is the underlying page of every web page, then you have the HTML right below it, which is the grouping of certain items on the screen, then branching off you'll have more specific parts of the web page like the title or the sections of the webpage. This goes all the way down to the text you are reading right now. We interact with this DOM by applying certain styles like colors or sizing of each different piece of this tree structure: Sometimes we just want a paragraph to be red, so, we'll change something at the very bottom of this tree strucutre. But, sometimes we want everything in the web page to be italics, so, we will edit a higher spot in the tree structure.
Explain the difference between accessing data from arrays and objects.
Arrays are simply a group of the same data: if you have apples, oranges, and bananas. You can store them as a fruits basket or ARRAY to be more organised - the first item in fruits array is apple, second item is oranges etc. Objects are like arrays within arrays: instead of just having fruits, you now also have meats. Since fruits and meats can't be put together, you have to store them in something like a fridge or a fridge OBJECT which can have mulitple sections - you have a fruits section and a meats section. For fruits, you can refer to fruits by saying: go to the fridge and look into the fruits section, which you could find apples etc. For meats, you would do the same thing: go to the fridge and look into the meats section, you would could find steak etc.
Explain what functions are and why they are useful.
Functions are basically snippits of code that you can re-use, they give you more structure. Imagine you're running a restaurant. You employ staff and all of their job descriptions are just "you help me run the restaurant". Things are fine until you get a lot of customers, which is when everything falls apart since you are so unorganised. You reorganise these staff to give them specific 'functions' like Kitchen, Table and Admin staff. You now have an organised structure which can handle catering to a lot of customers. You can even employ casual staff to help during those busy times without having to micro-manage them since you can place them into specific functions.


Mushrooms - P. cubensis
I'll start off by mentioning this happened about half a year ago and from the experience Iím a changed person and have now found my destiny through Jesus Christ king of all things.
Now that thatís outta the way let me explain my breakthrough. Me and my friend who was raised Christian decided we'd like to mow these mushrooms and take a little trip into this huge forest behind another friends house. We'd seen the power of these shrooms before but this was like nothing Iíve ever read or seen before ever. So we get the shrooms from a friend measured up as 3.7 g for me and 3.7 g for my friend who has at least 100 pounds on me.
 So were walking through the forest feeling like a million bucks we got our water bottles and a back pack each with some paper and pencils just in case something had to be written down.
After about 30 mins we had walked our way pretty damn deep into this forest and I had never come to the spot where we decided to chill before. So were sitting down and I start getting a little bit of a wavy feeling in my vision almost like it started getting windy and the trees started becoming very vibrant and a lot more colorful. We both sat down on the top of this valley looking down onto a beautiful river just basically in the heart of the forest. Let me assure u our trip has not nearly begun.
  My friend looked pretty damn spooked so we stood up and started walking down towards this river, this is when the shrooms quickly started taking a hold of me. Trees became very shiny like the bark was made of a very colorful reflective metal and the patterns on the trees looked extremely similar to hieroglyphics and I have never known how to read that shit before but it was there and quite stunning.
My friend whips out a huge joint and we havenít even started peaking yet. So were walking along taking huge hits off this joint and I donít even think the thing was half done before we threw it out and literally collapsed on the side of this embankment overlooking the river. I could feel insanely large surges of energy overcoming my body almost like I was outside in the cold my skin was felt like static and my vision started looking like a tv set with red blue and green dots. I couldnít stand up for my life so I just laid back and asked God to take this time to seriously show me who I was and who he was. I was no longer in my body it was like I was hovering a couple feet over my body the forest was no longer an ordinary forest it was a tribal meeting of the Godís kingdom and I was right in the middle.
 The trees were beautiful people moving in a way that looked like they were dancing for me. We spoke to each other only through thoughts no words because words were meaningless at that point we were communicating with our souls.
One tree I remember pretty vividly was a wise looking women with long black hair holding what looked like a new born baby and when my friends cell phone rang and he started yapping on it about how he was sooooo fucked making a whole lotta noise the woman became very frustrated and I felt a tension that forced me to tell my friend to shut the hell up and it seemed like he knew why as soon as I said it.
After this point I cant quite remember what happened but there was an eye floating around in my field of vision it looked like a normal eye except a lot more detailed and the iris the colored part of the eye was rainbow colors and looked brilliant. I thought to myself if this isnít God looking at me I donít know what is. If I could draw this thing out like I saw it I could make a fortune I thought to myself. There came a point where this became much to intense like imagine being in a forest and every single tree is its own identity like a different person.
 I was just laying there absolutely stunned outta my mind.  This is the most amazing thing that exists on this planet. Nothing matters in life but this experience I was thinking. The hallucinations became to strong and I felt as though I was falling asleep like tears came over me and I just turned my head and saw the sun started to shine through the trees and as I looked at this brilliant light glowing with every color of the rainbow I felt myself being sucked into it. And thatís when I believe I entered into eternity for a few minutes in reality time. Let me explain this. I lost myself plain and simply I was no longer Nick with a family and friends and playstation and skateboarding. Those things no longer had any relevance I was my soul and I was with my true family in heaven for a few minutes.
When my friend woke me up I truly thought I was dead.  But the thing was I truly didnít know. It looked like we were approaching a roundabout of thrones with one large throne in the middle and I thought I was being led my throne I thought I had died with my friend and we were headed home to our true home.
 My friend definitely didnít go nearly as deep as me seeing as how he lead us out while I was completely fucked. I looked at him and asked him dude what is this man? Why are we here?  And then I heard it in my head as if I had turned completely schizophrenic a voice which was my own was speaking to me. In my head I was listening to a voice which was my voice but it was speaking on its own accord. It was saying donít you bother worrying about this life your in right now it means nothing absolutely nothing.
Now 7 months later after much research speculation and faith I have commended my soul to the lord for showing me the meaning of life and that is to do watever I want in this life because its mine but to remember that our true father is waiting for us in heaven and wants to see us enjoy his amazing world he has left for us.
Amen
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


I am passionate in two fields: business and technology. I solve problems by creating system and pipeline across business functions. I'm currently working in Indonesia with many exposures of working with various people around the globe. I have experience in all sorts of business: startups, SMEs, corporates, and multinational companies.
From technology perspective, I am well-rounded and experienced in full-stack development and scalable deployment. I have built products for startups and middle-sized companies. Tech stack includes (but not limited to) : NodeJS, ReactJS, databases (SQL + NoSQL). Also experienced in AWS, Linux OS, CI/CD, message queueing. Occasionally code in Golang or Python.


L♥VE A BIT O' L♥VELY TELLY!!
Home
About
Products
Contact
The ten most popular tv series on this planet, at this time!